我需要在我的 Web 应用程序中检索大小超过 64KB 的文件。目前,在 JSON API 的 v1beta1 中,Google 仅允许通过其 JSON API 上传/下载大小为 64KB 的文件。我已经弄清楚如何使用“可恢复”上传(不是通过 v1beta1 在其 JSON API 中提供的接口,而是手动)上传大小超过 64KB 的文件。
我想不通的是下载的好方法。现在,我为要下载的对象公开 ACL,下载文件,然后删除对象上的公共 ACL。这不仅效率低下,而且不是很干净。有没有更好的方法我可以使用,或者在谷歌在他们的 API 的未来版本中提供更好的方法之前我会被卡住吗?
背景信息 我正在编写一个 GAE 应用程序,并且我知道 google.appengine.api.files 接口。不幸的是,在使用本地开发环境时,这不适用于实时存储桶,并且出于测试目的,我和我的团队需要一种在本地测试开发的方法(在其他限制/安全因素中部署到 GAE 太麻烦了)。我们可以与除 Cloud Storage 之外的所有其他 API 进行交互,因此我正在编写一个类,该类在从 Cloud Storage 读取/写入/删除时将使用 JSON API 或 AppEngine 的文件接口。我有一个可行的实现,但我对检索文件的方式不满意。
下面的评论澄清:我们正在下载大量信息,对其进行按摩,并将其存储到 Cloud Storage 以供 BigQuery 使用。我们需要使用开发环境中的实时存储桶,因为如果我们不这样做,BigQuery 将无法使用我们想要测试的数据。无需提供这些文件,只需处理它们
来自对以下已接受答案的评论的解决方案:
我能够httplib2
从与 JSON API 交互的代码中重用经过身份验证的对象,以对https://{bucket_name}.storage.googleapis.com/{object_name}
URL 端点执行经过身份验证的 GET 请求,只添加Content-Length: 0
和x-goog-api-version: 2
标头。