使用Blobstore上传到Google云端存储:Blobstore在上传时不会保留文件名

时间:2015-03-19 13:36:22

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

我正在尝试使用Blobstore上传到GCS。我在生成上传URL时设置了GCS存储桶名称,文件上传成功。

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

L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVvbi1XNFEyWEJkNGlKZHNZRlJvTC0wZGlXVS13WTF2c0g0LXdzcEVkaUNEbEEyc3daS3Vham1MVlZzNXlCSk05ZnpKc1RudDJpajF1TmxwdWhTd2VySVFLdUw3US56ZXFHTEZSLVoxT3lablBI

这是怎么回事?这是异常吗?

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

任何指针都会非常有用。

谢谢!

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

1 个答案:

答案 0 :(得分:2)

它是如何工作的,请参阅https://cloud.google.com/appengine/docs/python/blobstore/fileinfoclas ...:

  

FileInfo元数据不会持久保存到数据存储[...]您必须保存   {/ 1}}您自己的上传处理程序或此数据将   迷路了

我个人建议新应用程序直接使用https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/,而不是使用blobstore模拟。

后者目前主要仅针对(有限的,部分的)向后兼容性提供:它并非真正适用于新应用程序。