【问题标题】:Upload an image to Google Cloud Storage with PHP?使用 PHP 将图像上传到 Google Cloud Storage?
【发布时间】:2013-11-15 12:26:34
【问题描述】:

我就是无法让这段代码工作。我从 URL 获取图像并将其存储在临时文件夹中,以便我可以将其上传到 Google Cloud Storage 上的存储桶。这是一个 CodeIgniter 项目。此函数位于控制器中,能够获取图像并将其存储在项目根目录的“tmp/entries”文件夹中。

我错过了什么吗?该文件只是没有上传到谷歌云存储。我转到本地 App Engine 开发服务器中的 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';
}

【问题讨论】:

    标签: php codeigniter google-app-engine google-cloud-storage


    【解决方案1】:

    如您所见,开发应用服务器在本地模拟 Cloud Storage。因此,这是预期的行为——它允许您在不修改生产存储的情况下进行测试。 如果您运行已部署的应用程序,您应该会看到写入实际进入您的 GCS 存储桶。

    【讨论】:

    • 预期行为是将文件完全上传到开发服务器还是向您显示一个空文件?你是说在 App Engine 服务器上运行的文件不会是空的吗?
    猜你喜欢
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多