3

Я загружаю двоичные файлы jpeg с помощью html <form> на мой сервер pappon webapp, размещенный в Google App Engine. Метод сервера получает полное изображение (успешно проверяет статистику печати, такую ​​как размер файла/тип и т. Д.), Но не записывает его в ведро хранилища Google. То, что заканчивается в ведре GCS, является поврежденным файлом всего в 48 байт.Google облако хранения хранит только (48 B) для каждого файла

def handleUpload(self): 

    client = self._get_storage_client() 
    bucket = client.get_bucket(config.CLOUD_STORAGE_BUCKET) 

    results = [] 

    for name, fieldStorage in self.request.POST.items(): 
    if type(fieldStorage) is unicode: 
     continue 
    result = {} 
    fileName = urllib.unquote(fieldStorage.filename) 
    blob = bucket.blob(fileName) 

    blob.upload_from_string(
     str(fieldStorage.file),fieldStorage.type) 

    url = blob.public_url 
    if isinstance(url, six.binary_type): 
     url = url.decode('utf-8') 

    results.append(result) 

    return results 

ответ

0

Обдумал это. В действительности это должен быть fieldStorage.file.read() вместо файла fieldStorage.file, потому что он читает файл, используя временный буфер, а не весь файл одновременно.

Смежные вопросы