我只是无法让这段代码起作用。我从URL获取图像并将其存储在临时文件夹中,以便将其上传到Google云端存储上的存储桶中。这是一个CodeIgniter项目。此功能位于控制器内,可以获取图像并将其存储在项目根目录的'tmp / entries'文件夹中。
我错过了什么吗?该文件无法上传到Google云端存储。我在我的本地App Engine开发服务器中访问了Blobstore Viewer,注意到有一个文件,但它是空的。我希望能够从我的开发服务器上将此文件上传到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';
}
答案 0 :(得分:1)
正如您所注意到的,开发者应用服务器在本地模拟云存储。因此,这是预期的行为 - 它允许您在不修改生产存储的情况下进行测试。 如果您运行已部署的应用程序,您应该会看到写入实际进入您的GCS存储桶。