【问题标题】:How to get the created filename when a user uploads a file to Google Cloud Storage?用户将文件上传到 Google Cloud Storage 时如何获取创建的文件名?
【发布时间】:2013-03-29 08:02:10
【问题描述】:

当用户将图像上传到 Google Cloud Storage 时,我需要获取文件名(云中的散列名称,而不是用户的文件名)才能在之后删除文件。

我已阅读该问题:

BlobService.getUploads() 会返回 BlobStore.blobKeys,即使使用 GS。 https://code.google.com/p/googleappengine/issues/detail?id=8337

在 GAE SDK 1.7.5 发行说明中:

使用 Cloud Storage 时,Blobstore 服务现在返回创建的文件名而不是 blobKey。

但是,我不知道如何通过 Blobstore 服务获取创建的文件名。

我的代码:

icon = self.get_uploads('icon')
if icon:
    blob_info = icon[0] 
    img_key = str(blob_info.key())
    img_filename = blob_info.filename
    img_size = blob_info.size
    img_type = blob_info.content_type
    img_creation = blob_info.creation
    img_url = images.get_serving_url(blob_info.key()) 

感谢您的帮助。

更新:

最后我谷歌并得到了问题:

self.get_uploads('file')[0] 即使在使用 GS 时也会返回 BlobStore.blobKeyshttps://code.google.com/p/googleappengine/issues/detail?id=9051

魔法密码:

fileInfo = blobstore.parse_file_info(self.request.POST['file'])
logging.info(fileInfo.gs_object_name)

有效!

所以我可以使用 gs_object_name 来删除文件:

files.delete(fileInfo.gs_object_name)

【问题讨论】:

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


    【解决方案1】:

    现在有BlobstoreUploadHandlerget_file_infos 方法。

    How to get FileInfo/gcs file_name for files uploaded via BlobstoreUploadHandler?

    【讨论】:

      【解决方案2】:

      除了使用“文件名”,您可以只使用“blobKey”进行大部分操作,包括删除文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 2018-10-31
        • 1970-01-01
        • 2019-06-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多