Я недавно начал использовать google-cloud client, и я сделал этот маленький пример (я опустил/изменил вещи для наглядности):Как загрузить файл размером более 32 МБ в GCS с помощью клиента Google Cloud?
<form id="testform" method="post" enctype="multipart/form-data">
<p>
<div>
<label for="fotos">Some file</label>
</div>
<div>
<input type="file" name="testfile">
</div>
</p>
<input type="submit" value="Submit">
</form>
from google.cloud import storage
class MyHandler(BaseHandler):
def get(self):
self.render("test.html")
def post(self):
file = self.request.POST["testfile"]
filename = file.filename # + TimeStamp
bucket = storage.Client().get_bucket(self.get_bucket_name())
blob = bucket.blob(filename)
blob.upload_from_string(data=file.file.read(),
content_type=file.type)
self.write(blob.public_url)
Этого код прекрасно работает с чем под 32 Мб, но он не может справиться более крупные файлы, потому что они проходят через приложение, а не напрямую в GCS. Я видел solutions, используя API Blobstore, но они старые, и Blobstore даже не используется для хранения данных (хотя API Blobstore все еще можно использовать).
Так что мне было интересно, есть ли способ исправить это, используя клиент google-cloud? Я не видел способа создания URL-адреса для загрузки в docs.
API JSON звучит как отличное решение. Поэтому я думаю, что мне действительно не нужен этот клиент Google Cloud. Благодарю. –
Привет, Хорхе, можете ли вы указать мне, как использовать JSON API через ajax для загрузки файла. Я читал документы весь день, но не нашел конкретного примера. Мне просто нужно подтолкнуть в правильном направлении. ура – Chez