如何在BlobStore中设置文件名属性?
我正在通过程序上传图片文件,并想要设置文件名。当我通过POST上传文件时,文件名会自动设置。但是,当我使用下面的方法时,文件名没有被设置。
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 个回答
4
我知道这个问题已经很老了,但是……
self.send_blob(blob_info, save_as=True) 这个方法中,save_as参数除了可以设置为True,还可以指定一个字符串。这意味着你可以用这个字符串作为文件名来提供文件。所以一个解决办法是,你可以把文件名和blobkey一起保存,然后在用send_blob来提供这些文件时,把文件名作为参数传进去。你不需要关心文件是怎么存储的,你只需要关心它是怎么被提供出来的。
8
从网址中提取文件名(可以参考相关问题 这里)。然后你可以通过在调用 files.blobstore.create 时添加一个额外的参数来设置它:
file_name = files.blobstore.create(mime_type='image/png',_blobinfo_uploaded_filename=file_name_from_url)