Я пытаюсь загрузить некоторые изображения в GCS через экземпляр App Engine с помощью Flask, но каждый раз, когда файл загружается, когда я его загружаю, я получаю поврежденный файл. Что я делаю не так ?Загрузка файлов в Google Cloud Storage с флягой
Я загрузил и использовал клиент Google Cloud Storage, как это делается в документах.
@app.route('/upload', methods=['POST'])
def upload():
if request.method == 'POST':
file = request.files['file']
extension = secure_filename(file.filename).rsplit('.', 1)[1]
options = {}
options['retry_params'] = gcs.RetryParams(backoff_factor=1.1)
options['content_type'] = 'image/' + extension
bucket_name = "gcs-tester-app"
path = '/' + bucket_name + '/' + str(secure_filename(file.filename))
if file and allowed_file(file.filename):
try:
with gcs.open(path, 'w', **options) as f:
f.write(str(file))
print jsonify({"success": True})
return jsonify({"success": True})
except Exception as e:
logging.exception(e)
return jsonify({"success": False})
Благодарим за помощь!
Хорошо! Поэтому, если я понимаю это хорошо, лучше создать URL-адрес для загрузки файла, потому что если я не загружаю файл в App Engine, а затем записываю его в Clou Storage? Спасибо за вашу помощь ! – Merqurio
@Merqurio идея состоит в том, чтобы загрузить файл через службу google, и вы обрабатываете только небольшую часть загрузки, также, если вы используете это на движке приложения, есть ограничение в 32 Мбайт на загрузку файлов, большие файлы будут должны идти прямо к blobstorage или gcs. –