2013-11-15 83 views
0

我只是不能让这个代码工作。我从网址获取图片并将其存储在临时文件夹中,以便我可以将其上传到Google云端存储中的存储分区。这是一个CodeIgniter项目。该功能位于控制器内,能够获取图像并将其存储在项目根目录的“tmp/entries”文件夹中。使用PHP将图像上传到Google Cloud Storage?

我错过了什么吗?该文件仅上传到Google云端存储。我去了我的本地App Engine dev服务器的Blobstore查看器,注意到有一个文件,但它是空的。我希望能够从我的开发服务器上将这个文件上传到Google的服务器。开发服务器似乎覆盖了这个选项,并保存所有文件在本地。请帮忙。

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

正如您所注意到的,开发应用程序服务器在本地模拟云存储。所以,这是预期的行为 - 并且它可以让您在不修改生产存储的情况下进行测试。 如果您运行已部署的应用程序,您应该看到实际写入您的GCS存储区的写入。

+0

预期的行为是将文件完全上传到开发服务器还是向您显示一个空文件?你是否说如果该文件在App Engine服务器上运行,该文件将不会为空? – Nag

相关问题