def get_bucket_file(self, key):
        cache_key = ("BUCKET_FILE", key)
        if not self._bucket_client:
            self._bucket_client = get_bucket_client()

        def getter():
            return self._bucket_client.download_to_tmpfile(key)

        return self._get_or_create_cached_value(cache_key, getter)