2013-11-15 2 views
0

Я просто не могу заставить этот код работать. Я получаю изображение из URL-адреса и сохраняю его во временной папке, чтобы загрузить его в ведро Google Cloud Storage. Это проект CodeIgniter. Эта функция находится внутри контроллера и может получить изображение и сохранить его в папке tmp/entries в корневом каталоге проекта.Загрузить изображение в Google Cloud Storage с помощью PHP?

Я что-то упустил? Файл просто не загружается в Google Cloud Storage. Я пошел в Blobstore Viewer на своем локальном сервере разработчика App Engine и заметил, что есть файл, но он пуст. Я хочу загрузить этот файл на серверы Google с моего сервера dev. Кажется, что сервер dev перезаписывает эту опцию и сохраняет все файлы локально. Пожалуйста помоги.

public function get() 
{ 
    $filenameIn = 'http://upload.wikimedia.org/wikipedia/commons/1/16/HDRI_Sample_Scene_Balls_(JPEG-HDR).jpg'; 
    $filenameOut = FCPATH . '/tmp/entries/1.jpg'; 

    $contentOrFalseOnFailure = file_get_contents($filenameIn); 
    $byteCountOrFalseOnFailure = file_put_contents($filenameOut, $contentOrFalseOnFailure); 

    $options = [ "gs" => [ "Content-Type" => "image/jpeg" ]]; 
    $ctx = stream_context_create($options); 
    file_put_contents("gs://my-storage/entries/2.jpg", $file, 0, $ctx); 

    echo 'Saved the Image'; 
} 

ответ

1

Как вы заметили, сервер приложений Dev имитирует облачное хранилище локально. Итак, это намеченное поведение - и оно позволяет вам протестировать без изменения вашего производственного хранилища. Если вы запустите развернутое приложение, вы увидите, что записи действительно идут в ваш ковш GCS.

+0

Является ли предполагаемое поведение полностью загружать файл на сервер разработки или показывать пустой файл? Вы хотите сказать, что файл не будет пустым, если он будет запущен на сервере App Engine? – Nag

Смежные вопросы