Google app engine Bloblstore文件API到GCS API
我最近注意到,在1.8.1应用程序引擎版本中,他们将文件的状态从“实验性”更改为“不推荐”,如Py2.7运行时Blobstore的API。查看这些文档,它们似乎没有用于云文件存储的类似文件的上下文管理器。是否有人将Blobstorage迁移到GCS API?非常感谢您提供的任何提示和建议。允许您使用appengine中的gcs,使用方式与旧文件api基本相同。我不知道为什么它没有在文档中更加突出 下面是一段来自 编辑: 它在文档中:允许您使用appengine中的gcs,与旧文件api基本相同。我不知道为什么它没有在文档中更加突出 下面是一段来自 编辑:Google app engine Bloblstore文件API到GCS API,google-app-engine,python-2.7,Google App Engine,Python 2.7,我最近注意到,在1.8.1应用程序引擎版本中,他们将文件的状态从“实验性”更改为“不推荐”,如Py2.7运行时Blobstore的API。查看这些文档,它们似乎没有用于云文件存储的类似文件的上下文管理器。是否有人将Blobstorage迁移到GCS API?非常感谢您提供的任何提示和建议。允许您使用appengine中的gcs,使用方式与旧文件api基本相同。我不知道为什么它没有在文档中更加突出 下面是一段来自 编辑: 它在文档中:允许您使用appengine中的gcs,与旧文件api基本相同。
在文档中:我确实看到了。我的问题主要是因为缺少上下文管理器,它将底层内容抽象掉了。例如:使用files.open(file_blob,'a')作为f:f.write(payload)文件。finalize(file_blob)您仍然可以这样做:使用gcs.open(filename,'w')作为f:f.write('abcde\n')(这来自blobstore示例,但写入gcs:)哦,我没有意识到这一点。谢谢这将使迁移变得更加容易。我需要在这个答案中包含比较吗?或者您还需要什么?我确实看到了。我的问题主要是因为缺少上下文管理器,它将底层内容抽象掉了。例如:使用files.open(file_blob,'a')作为f:f.write(payload)文件。finalize(file_blob)您仍然可以这样做:使用gcs.open(filename,'w')作为f:f.write('abcde\n')(这来自blobstore示例,但写入gcs:)哦,我没有意识到这一点。谢谢这将使迁移变得更容易。我需要在这个答案中包含比较还是您想要的其他内容?我需要在答案中添加更多内容吗?我遗漏了什么?我需要补充更多的答案吗?我错过了什么?
def create_file(self, filename):
"""Create a file.
The retry_params specified in the open call will override the default
retry params for this particular file handle.
Args:
filename: filename.
"""
self.response.write('Creating file %s\n' % filename)
write_retry_params = gcs.RetryParams(backoff_factor=1.1)
gcs_file = gcs.open(filename,
'w',
content_type='text/plain',
options={'x-goog-meta-foo': 'foo',
'x-goog-meta-bar': 'bar'},
retry_params=write_retry_params)
gcs_file.write('abcde\n')
gcs_file.write('f'*1024*1024 + '\n')
gcs_file.close()
self.tmp_filenames_to_clean_up.append(filename)