Мне удалось успешно прочитать/записать файлы (xls) в корзину, которую я создал с помощью приложения App Engine, работающего в GAE. Однако, когда я пытаюсь сделать то же самое для файлов изображений, это дает ошибку:
'Время ожидания запроса к Google Cloud Storage истекло', DownloadError('Невозможно получить URL-адрес: https://storage.googleapis.com/parse_scratch/TTM150 MSM63 04504.jpg',)
Пожалуйста помоги.
В ответ на вопрос Бенсона ответ (вместе с кодом, который я использовал) приведен ниже:
Индивидуальные размеры файлов:
Менее 400 КБ (некоторые меньше 100 КБ) и одно изображение, которое я загрузил в GCS, которое я пытаюсь прочитать, просто вызвав gcs.open(fname, 'r'), составляет 22 КБ. Однако файлы xls, которые я пытаюсь прочитать из того же ведра (используя тот же код), составляют 5 МБ!
Код:
Что он делает: открывает zip-файл изображений, хранящихся в статическом файле моего Django Framework, читает через него файлы один за другим и пытается сохранить данные в GCS, используя gcs_write(). Аналогичный код (без просмотра zip-файла и попытки прочитать сохраненное изображение в GCS также не может прочитать, что приводит к той же ошибке, что и выше).
zip = zipfile.ZipFile(join(IMAGEPATH, f), 'r')
for imgwpath in zip.namelist():
if not (('.jpg' in imgwpath) or ('.jpeg' in imgwpath) or ('.gif' in imgwpath)):
continue
full_name = imgwpath.split('/')
image_name = full_name[len(full_name)-1]
data = zip.read(imgwpath)
if '.jpg' or '.jpeg' in image_name:
type = 'jpeg'
elif '.gif' in image_name:
type = 'gif'
filename = BUCKET + image_name
gcs_file = gcs.open(filename, 'w', content_type = 'image/jpeg')
gcs_file.write(data)
gcs_file.close()