【发布时间】:2013-09-17 21:02:16
【问题描述】:
有一个 GAE 项目使用 GCS 来存储/检索文件。这些文件还需要由将在 GCE 上运行的代码读取(需要 C++ 库,因此不能在 GAE 上运行)。
在生产中,部署在实际的 GAE > GCS
按照建议,我使用 GoogleAppEngineCloudStorageClient 运行 GAE 的 dev_appserver 来访问(模拟的)GCS。文件放在本地 blobstore 中。非常适合测试 GAE。
由于这些不是在本地运行 VM 的 GCE SDK,所以每当我提到本地“GCE”时,它只是我运行 linux 的本地开发机器。 在本地 GCE 方面,我只是使用带有 python 2.x 运行时的默认 boto 库 (https://developers.google.com/storage/docs/gspythonlibrary) 来与 C++ 代码交互并从 GCS 检索文件。但是,在开发中,这些文件无法从 boto 访问,因为它们存储在 dev_appserver 的 blobstore 中。
有没有办法将本地 GAE 和 GCE 正确连接到本地 GCS?
目前,我放弃了本地 GCS 部分并尝试使用真正的 GCS。带有 boto 的 GCE 部分很简单。 GCS 部分还能够使用 access_token 使用真实的 GCS,因此它使用真实的 GCS 而不是本地 blobstore:
cloudstorage.common.set_access_token(access_token)
根据文档:
access_token: you can get one by run 'gsutil -d ls' and copy the
str after 'Bearer'.
该令牌的工作时间有限,因此并不理想。有没有办法设置更永久的 access_token?
【问题讨论】:
标签: python google-app-engine boto google-cloud-storage google-compute-engine