5

我需要在我的 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: 0x-goog-api-version: 2标头。

4

1 回答 1

1

对于下载,XML API 是进行经过身份验证的下载的最简单方法。有多种方法可以进行经过身份验证的下载,如本页所述:https ://developers.google.com/storage/docs/authentication

对于简单的获取操作,“XML API”这个名称可能会被认为具有误导性——您不需要生成任何 XML。如果您遇到错误,它将表示为 XML,但在成功下载文件的最简单情况下,实际上不涉及 XML。

于 2013-01-24T22:37:07.600 回答