загрузка изображений в облачное хранилище Google Bucket

Я тестировал следующий фрагмент кода, чтобы посмотреть, смогу ли я загрузить изображения в корзину в облачном хранилище Google.

Это мой файл app.yaml:

application: test-795
version: 1
runtime: php
api_version: 1

handlers:

# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: \1
upload: .+\.(gif|png|jpg)$
application_readable: true

- url: /(.+\.php).*
script: \1

- url: /upload
script: fileimage.php

и это мой файл fileimage.php для загрузки файла изображения в корзину:

<?php

require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
use google\appengine\api\cloud_storage\CloudStorageTools;

$options = [ 'gs_bucket_name' => 'test-795.appspot.com' ];
$upload_url = CloudStorageTools::createUploadUrl('/upload', $options);

if(isset($_POST['do-upload']) AND $_POST['do-upload'] === "yes"){

$yesupload = $_POST['do-upload'];
preg_match("/yes/", "".$yesupload."");

$filename = $_FILES['testupload']['name'];

$gs_name = $_FILES['testupload']['tmp_name'];
move_uploaded_file($gs_name, 'gs://test-795.appspot.com/'.$filename.'');
?>

<div class="contentArea">
<?php
echo "<p class=\"SomeSpaceDude\">Hey file is uploaded, Yes! ".$yesupload." !</p>";
echo "<p class=\"SomeSpaceDude\">This is the file name: ".$filename."</p>";
}

echo"</div>";
?>

<form class="SomeSpaceDude" action="<?php echo $upload_url?>" enctype="multipart/form-data" method="post">
<p>Files to upload: </p> <br>
<input type="hidden" name="do-upload" value="yes">
<input class="SomeSpaceDude topcoat-button" type="file" name="testupload" >
<input class="SomeSpaceDude topcoat-button" type="submit" value="Upload">
</form>
</div>

когда я запускаю файл, используя localhost: 8080 я получаю сообщение Эй файл загружен, да! да ! Мой веб-адрес стал похож на: localhost: 8080 / _ah / upload / ahVkZXZ-Y …
Проверка на моем ведре в хранилище Google, которое имеет имя test-795 и ничего не загружено.

Я также развернул его, и когда я тестирую его после нажатия кнопки загрузки, я получаю пустую страницу, и ссылка на веб-адрес выглядит следующим образом: test-795.appspot.com/_ah/upload/AMmfu6 … Внутри я ничего не проверяю опять конечно.
Есть идеи, что мне здесь не хватает?

0

Решение

Когда вы работаете на сервере разработки, файл не загружается в реальную службу облачного хранилища, а только в локальную эмуляцию.

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

3

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

Бове код работает нормально … Я наконец-то обнаружил, что проблема была в том, что я должен использовать везде в приведенном выше коде test-795, а не test-795.appspot.com

1