【问题标题】:Uploading to Google Cloud Storage using Blobstore: Blobstore doesn't retain file name upon upload使用 Blobstore 上传到 Google Cloud Storage:Blobstore 在上传时不保留文件名
【发布时间】:2015-03-19 13:36:22
【问题描述】:

我正在尝试使用 Blobstore 上传到 GCS。我在生成上传url的时候设置了GCS的bucket名字,文件上传成功了。

在上传处理程序中,blobInfo.getFilename() 返回正确的文件名。但该文件实际上以不同的文件名保存在 GCS 存储桶中。每次,文件名都是一些像这样的随机哈希:

L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVvbi1XNFEyWEJkNGlKZHNZRlJvTC0wZGlXVS13WTF2c0g0LXdzcEVkaUNEbEEyc3daS3Vham1MVlZzNXlCSk05ZnpKc1RudDJpajF1TmxwdWhTd2VySVFLdUw3US56ZXFHTEZSLVoxT3lablBI

它会这样工作吗?这是异常吗?

我根据blobInfo.getFilename()返回的数据将文件名存储到数据存储区,这是文件名的正确值。但我无法使用 GcsFilename 访问该文件,因为该文件存储在 GCS 中,该随机哈希作为文件名。

任何指针都会很有帮助。

谢谢!

PS: The blobstore page 表示 BlobInfo 目前不可用于 GCS 对象。但是 BlobInfo.getFilename 为我返回了正确的值。那是我的问题吗?

【问题讨论】:

  • @Alex - 这应该是一个答案,而不是评论。这将有助于结束这个问题。

标签: google-app-engine google-cloud-storage blobstore


【解决方案1】:

它是这样工作的,见https://cloud.google.com/appengine/docs/python/blobstore/fileinfoclas ...:

FileInfo 元数据未保存到数据存储区 [...] 您必须保存 gs_object_name 您自己在您的上传处理程序中,否则此数据将 迷路了

我个人建议新应用程序直接使用https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/,而不是在它之上使用blobstore 仿真。

目前提供后者基本上只是为了(有限的、部分的)向后兼容性:它并不是真正适合新应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2012-03-05
    • 1970-01-01
    相关资源
    最近更新 更多