Когда пользователь загружает изображение в Google Cloud Storage, мне нужно получить имя файла (хешированное имя в облаке, а не имя пользователя), чтобы удалить файл после.Как получить созданное имя файла, когда пользователь загружает файл в Google Cloud Storage?
Я прочитал вопрос:
BlobService.getUploads() возвращает Blobstore blobKeys даже при использовании GS. https://code.google.com/p/googleappengine/issues/detail?id=8337
В GAE SDK примечаний 1.7.5 релиза:
Служба Blobstore теперь возвращает созданное имя файла вместо BlobKey при использовании Cloud Storage.
Однако я не знаю, как получить созданное имя файла службой 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())
Спасибо за вашу помощь.
Update:
Наконец я Google и получить вопрос:
self.get_uploads ('файл') [0] возвращает Blobstore blobKeys даже при использовании GS. https://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)