Appengine Cloud Storage загрузите изображение и сохраните в хранилище

У меня проблема. любая помощь приветствуется.

Я разрабатываю решение, которое должно использовать Google API, как облачное хранилище, диск и т. Д.

На странице классического профиля я должен загрузить изображение профиля. затем я использую angularjs для публикации данных в моем appengine / php / yii

formPHP:

`

<?php
require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
use google\appengine\api\cloud_storage\CloudStorageTools;
$options = [ 'gs_bucket_name' => 'seektrabajo' ];
$upload_url = CloudStorageTools::createUploadUrl('/perfiles/subirFotoPerfil', $options);
?>
<input type="file" name="file"nv-file-select="uploader.uploadAll()"uploader="uploader"   />

`

и при отправке отправьте данные в Google и Google в службу yii Ajax:

`

public function actionSubirFotoPerfil(){
$answer = array('answer'=>'Incompleted','serverFile'=>'sinfoto.png');
if(!empty( $_FILES )){
$filename = $_FILES['file']['name'];
$gs_name =  $_FILES['file']['tmp_name'];
move_uploaded_file($gs_name, 'gs://seektrabajo/'.$filename);
$answer = array( 'answer' => 'File transfer completed','serverFile' => $filename);
}
echo json_encode( $answer );
Yii::app()->end();
}

`

проблема в том, что никогда не сохраняйте файл, загруженный в мое хранилище, в облачном хранилище.
это не работает для разработки / локального режима и либо appengine развернут.
В Appengine Land я получаю эту ошибку:

Я просто получаю разрешение на ведро:


gsutil acl ch -u [email protected]:FULL_CONTROL gs://seektrabajo

[email protected] вы получаете из моей консоли google / apis-autentications / Email

![ошибка консоли веб-браузера] [1]

http://i.stack.imgur.com/noKnh.png

У кого-нибудь есть идея?
Благодарю.

0

Решение

Почему вы загружаете файлы в статический обработчик, а затем загружаете их в GCS? использование createUploadUrl() чтобы шаблон <form> ты служишь. Предоставьте функцию обратного вызова в вашем приложении для приложения, и после загрузки файла в ваше приложение будет отправлен запрос с остальными параметрами формы, метаданными файла и т. Д.

С шаблоном, который вы используете, возникает не только головная боль при попытке выяснить, как правильно передавать данные, но и тот простой факт, что вы обрабатываете все, что нужно для чтения / записи. в вашем случае, что, безусловно, не очень хорошая идея, если вы собираетесь использовать это в производственном коде, где вы платите за использованные ресурсы.

Короче говоря, нет причин использовать этот шаблон. В традиционном веб-приложении вы отправляете файловую форму на свой сервер по маршруту и ​​делаете то же, что и в своем примере кода (за исключением пересылки в GCS), но с App Engine вам нужно думать немного иначе, чем традиционными способами. веб-разработки на одной виртуальной машине, которую вы приобрели и на которой работаете PHP.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]