如何在BlobStore中设置filename属性?

时间:2011-04-18 01:59:55

标签: python google-app-engine blobstore

我是以编程方式上传图片文件并想设置文件名。当我通过POST上传文件时,会自动设置filename属性。但是,使用下面的方法时,文件名不会被设置。

        image = urllib2.urlopen(url)
        file_name = files.blobstore.create(mime_type='image/png')
        with files.open(file_name, 'a') as f:
            f.write(image.read())
        files.finalize(file_name)  
        image_blob_key = files.blobstore.get_blob_key(file_name) 

2 个答案:

答案 0 :(得分:8)

从网址解析文件名(参见相关问题here)。然后,您可以通过向files.blobstore.create调用添加一个附加参数来设置它:

file_name = files.blobstore.create(mime_type='image/png',_blobinfo_uploaded_filename=file_name_from_url)

答案 1 :(得分:4)

我知道这是一个老问题,但是......

self.send_blob(blob_info,save_as = True)允许您而不是True来指定字符串。这意味着文件将以提供的字符串作为文件名提供。因此,一个解决方案是让您保持文件名和blobkey,然后当您使用send_blob提供这些文件时,您提供文件名作为参数。你不关心如何存储文件,你只关心它将如何被提供。