【问题标题】:Write failed to Google Cloud Bucket写入 Google Cloud Bucket 失败
【发布时间】:2015-04-13 14:11:01
【问题描述】:

我一直在尝试使用 Google 提供的 php 示例对我的 Google Cloud Bucket 执行简单的写入操作。我的问题是我的远程 Google Cloud VM 服务器似乎无法正常运行。我遵循了网站上的所有说明,除了创建一个客户端 ID,因为我已经创建了 2 个,所以我使用了其中一个。我在尝试实现这一点时观察到的问题之一是 php 似乎不包括谷歌云存储库。我按照网站的指示下载了 git,我什至在 php.ini 中包含了路径。这是我包括的 include_path = ".:/usr/bin/php:/google-api-php-client/src"我发现即使添加了这个,当我尝试运行时

<?php file_put_contents('gs://myappid.appspot.com/hello.txt', 'Hello');?>

我收到错误 Unable to find wrapper 'gs//'。即使添加require_once(google-api-php-client/autoload.php) 也不能解决问题。在我添加 require_once... 之后,我的代码没有运行超过这一点。它不会抛出错误,它只是停止运行。我迷失了如何通过 php 将文件存储到我的存储桶中。我严格按照 Google 上的说明进行操作,但似乎没有任何效果。

【问题讨论】:

标签: php linux google-app-engine google-cloud-storage google-compute-engine


【解决方案1】:

只要您的谷歌计算引擎允许读写,gcloud 或 gsutil 应该已经安装。然后尝试使用普通的 gsutil 命令,例如:

exec("/usr/bin/gsutil -m cp -R file.png gs://bucket/images/", $output, $image_return);

登录您的计算引擎并像gsutil ls一样尝试

【讨论】:

    【解决方案2】:

    gs:// 包装器仅在 Google App Engine 上提供,而不在 Google Compute 引擎上提供。

    【讨论】:

    • 那么如何使用计算引擎将存储在桶中?
    • 我从未在 GCE 上做过 - 我会在这里阅读可用的方法:github.com/google/google-api-php-client/blob/master/src/Google/…
    • 我不明白有什么区别?据我了解,App Engine 为类似于 Compute Engine 的 Web 应用程序和库提供支持。但是当谈到从我的服务器存储到云存储时呢?为什么我拥有 App Engine 或计算引擎很重要?存储在桶中不是独立操作吗?
    • App Engine 是一种 PAAS,我们提供可用于代码的库和服务(如 gs:// 包装器、任务队列、内存缓存等)。 Compute Engine 是一种 IAAS,您需要提供与代码一起使用的库和服务。如果你想要 memcache,你需要配置它 - 如果你想写入 GCS,你需要获取正确的库并配置它以使其工作。
    猜你喜欢
    • 1970-01-01
    • 2021-01-07
    • 2017-04-04
    • 2019-10-04
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    相关资源
    最近更新 更多