Първо нека кажа,
Мисля, че прочетох всяка публикация за обмен на стекове, която изглеждаше подходяща за тази тема.*
Какво се опитвам да направя:
- Опитвам се да разреша на определени потребители да изпратят изображение в облачно хранилище на Google чрез формуляр на моя сайт..
- Друго изискване заедно с изпращането на това изображение в облачното хранилище е, че трябва да създам модел на това изображение в хранилището за данни със съответните му атрибути.
Не съм сигурен кой е най-добрият начин да направя това, защото..
Подходи, за които съм чел:
Има куп подходи за получаване на изображения в облачното хранилище:
- чрез API на blobstore
- чрез клиента на python за облачно съхранение: https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/#Python_About_the_client_library
- чрез rest api (обмислях json подход)https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload#simple
Прочетох много противоречива информация,
и прочетох толкова много, че не мога да го запазя правилно,
въпреки това,
Мисля, че решението беше:
За blobstore:
- Методът blobstore.uploadtocloudstoragethingthing може или не може да има размер на ограничение за качване на файл (не, това не е действителното извикване или име на метод) 2. Методът blobstore звучеше така, сякаш ще бъде премахнат??
За API на Jason:
Клиентската библиотека обаче включва оптимизации на App Engine, така че използването на REST API може да изисква допълнително време за разработка. Забележка: Сървърът за разработка на App Engine поддържа Cloud Storage Client. Не поддържа REST API.
За клиентската библиотека:
Не знам. Засега изглежда добре. Ето метода, който мисля да използвам:
cloudstorage.open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None)
В режим на четене (r) отваря посочения обект в Cloud Storage за четене. В режим на запис w, ако посоченият файл съществува, той го отваря за презапис (добавянето не се поддържа). Ако файлът не съществува, той се създава в посочената кофа.
Нещата, които използвам:
- Google App Engine
- Python (за манипулатори, модели и т.н.)
- angularjs и jquery (преден край)
- json понякога (backend)
- GAE шаблон (не питайте)
Какво мисля да направя:
- Вземете изображението на потребителя:
И така, намерих тази форма, която тествах. Той грабва файл от вашия компютър:
<form action="<?php echo $upload_url?>" enctype="multipart/form-data"
method="post">
Files to upload: <br> <input type="file" name="uploaded_files" size="40"> <input type="submit" value="Send">
(Не, не мога да използвам php junk в действието. Взех го от някое място в документите, но го тествах, той хваща файл, не, няма да изпрати и би било глупаво да го очаквам)
- Промяна на текущия ми манипулатор (който се грижи за създаването на модел на изображението в хранилището за данни), за да използва също
този метод:
cloudstorage.open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None)
В режим на четене (r) отваря посочения обект в Cloud Storage за четене. В режим на запис w, ако посоченият файл съществува, той го отваря за презапис (добавянето не се поддържа). Ако файлът не съществува, той се създава в посочената кофа.
Моите проблеми досега
Не знам как работи този формуляр и не знам как да получа правилната информация от този формуляр до манипулатор и от каква информация ще се нуждае този манипулатор, за да мога да го обработя, да създам модела (вече знам как да създадете модела в хранилището на данни, вече го правите), и също така да изпратите изображението в облачното хранилище на Google с този метод:
cloudstorage.open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None)
В режим на четене (r) отваря посочения обект в Cloud Storage за четене. В режим на запис w, ако посоченият файл съществува, той го отваря за презапис (добавянето не се поддържа). Ако файлът не съществува, той се създава в посочената кофа.
Може ли някой да ми даде пример? Не мога да намеря подходящи публикации или документи за това какво да поставя във формуляра, така че да грабне файла, да грабне другите данни от формуляра, които потребителят попълва, и след това да изпрати изображението в облачното хранилище на Google.
--АКТУАЛИЗАЦИЯ--:
И така, веднага след като публикувах това, потърсих в Google gcs.open, което доведе до тази публикация:
как да качите изображение в облачното хранилище чрез приложение двигател?
Вярвам, че това може да свърши работа, що се отнася до бекенда, остава ми един въпрос.
За да поставите отново въпроса:
Въпроси:
Не знам какво ще бъде името на изображението, бих искал да използвам съществуващото или може би произволно. Предложения?
Къде да залепя това: enctype=multipart/form-data?
ще номер 2. бъркотия с другите ми данни от формуляра? Имам нужда от повече информация освен това изображение в заявката за публикация