Google 应用程序引擎 - 上传的文件在谷歌云存储上不公开

2024-05-14

我有一个允许用户上传图像的应用程序,并且我希望其他用户能够看到该图像。

我使用 CloudStorageTools::createUploadUrl 方法允许用户通过 POST 上传。然后,我将上传的文件并使用 move_uploaded_file 将其存储在 Google Cloud Storage 上。

然后,我使用 CloudStorageTools::getPublicUrl 来获取文件的 URL。它返回正确的 URL,但该文件不可公开访问,因此我收到 XML 错误响应“AccessDenied”。

我知道这是因为该文件未公开共享,但我不确定如何在上传后将其公开。

我尝试向 createUploadUrl 传递“acl=public-read”选项,但它返回了未知选项的错误。

我在此页面上看到了如何执行此操作的示例:https://developers.google.com/appengine/docs/php/googlestorage/public_access https://developers.google.com/appengine/docs/php/googlestorage/public_access但是,我的工作流程要求我允许使用 createUploadUrl 方法进行正常的 POST 上传,如下所示:https://developers.google.com/appengine/docs/php/googlestorage/user_upload https://developers.google.com/appengine/docs/php/googlestorage/user_upload

如何使用户上传的文件自动公开访问?


使用带流的 file_put_contents 使其工作。

$file = $_FILES['myfile']
$storeAt = 'gs://bucketname/filename.jpg

Old code

$saved = move_uploaded_file($file['tmp_name'],$storeAt);

新代码,设置权限和 mime 类型

$options = array('gs'=>array('acl'=>'public-read','Content-Type' => $file['type']));
$ctx = stream_context_create($options);
$saved = file_put_contents($storeAt, file_get_contents($file['tmp_name']), 0, $ctx);

Go me!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 应用程序引擎 - 上传的文件在谷歌云存储上不公开 的相关文章

  • 关于如何在 PHPUnit 中使用 setUp() 和tearDown() 有真实的例子吗?

    Methods setUp and tearDown 在每次测试之前和之后调用 但实际上 有没有任何真实的例子说明我为什么需要这个 检查其他人的测试 我总是看到类似的东西 public function setUp this gt test
  • 使用 htaccess 文件重定向[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Edit 我想重定向一个网址 to www example com location sydney from www example com rss
  • SplFileObject + LimitIterator + 偏移量

    我有两行数据文件 两行仅用于我的示例 实际上 该文件可以包含数百万行 并且我使用 SplFileObject 和 LimitIterator 进行偏移 但这种组合在某些情况下会有奇怪的行为 offset 0 file new SplFile
  • 提供节点名或服务名,或未知

    我收到这个 Python 错误 File Library Frameworks Python framework Versions 2 7 lib python2 7 urllib2 py line 1184 in do open rais
  • Shift+Enter 按钮用于提交表单

    我想使用 Shift Enter 按钮提交表单 而不是简单地按 Enter 按钮 请帮助我 如果您仍然想这样做 尽管这会带来可用性问题 form keydown function e if e keyCode 13 e shiftKey W
  • PHP:会话.auto_start

    我在同一台服务器上有两个项目 它们的设置在 session auto start 中冲突 相关post https stackoverflow com questions 1378324 php setting variables in i
  • 服务容器的使用寿命是多少?

    我正在尝试了解 Symfony2 框架 来自 Java Spring 背景 我意识到 Symfony2 中的 Scope 与 Spring 中的 Scope 不同 此外 通过 Symfony3 范围已弃用 https stackoverfl
  • PHP GoDaddy 最大执行时间不起作用

    默认 maximun execution time 为 120 秒 我已按照所有说明创建 php ini 文件并将其放置在正确的位置 public html 中 我运行 phpinfo 发现 maximun execution time 已
  • 如何在 PHP 中执行 shell 脚本?

    我有一个脚本 var www myscript sh它创建文件夹并运行命令svn update对于我的项目 我需要通过在浏览器中的 PHP 文件中调用它来执行此脚本 即本地主机 test php 我尝试使用函数shell exec and
  • 在 WordPress 中调用自定义 php 模板中的函数

    我想调用我在 WordPress 中编写的另一个 php 类中的函数 但是我对语法感到困惑 例如要获取页面上的标题 您只需调用 get header 等等 但是我如何调用特定类中的函数 例如 在index php中 我想调用一个名为this
  • 如何将 Google Cloud Storage 中的许多文件设为私有?

    我进行了很多研究 但无法为此提出解决方案 以下是我用来在 GCP 中公开所有文件的代码 def make blob public bucket name blob name Makes a blob publicly accessible
  • 我可以解密通过 PHP 加密的 C++ 数据吗?

    我正在使用 mcrypt encrypt 和 base64 encode 来加密 php 中的数据 我尝试用C 解密数据 但没有成功 我有使用多年的 C Rijndael 逻辑 以及 base64 decode 逻辑 后者完美地解码了 ph
  • 终端从包含空格的变量传递参数

    在终端中如何将包含空格的字符串作为参数传递 它实际上跳过了空格后面的部分 只取第一个单词 word soccer ball shell exec casperjs test js word word 那么我怎样才能转义空白它只运行这个命令
  • 差异:查看页面源代码与在 Firebug 中查看

    当我查看页面的页面源时 例如 http my sa ucsb edu public curriculum coursesearch aspx http my sa ucsb edu public curriculum coursesearc
  • 我需要进行哪些更改才能让我的表在 AppEngine 的 BigTable 上运行?

    假设我有一个预订数据库 其中包括users user id fname lname 和他们的tickets ticket id user id flight no 以及相关的flights flight no airline departu
  • Wordpress 编辑器中的“application/gas-events-abn”对象是什么?

    我正在使用 Wordpress 创建博客 我注意到当我多次保存帖子时 代码中会出现一个奇怪的元素 在帖子底部创建一个大的空白区域 代码如下所示 post content nbsp 每次我编辑帖子时 我都必须将其删除 Joomla 有时也会发
  • WordPress ~ 如何在一页上显示多个 Google Chart?

    下面是我插入到 WordPress Visual Composer 中的原始 HTML 块中的一个 Google 图表的代码 图表 ID 名称为 chart div1 这适用于我的 WP 网页
  • 如何在 Yii 框架中从数据库中获取所有表名和列名

    我正在开发一个模块 我想在其中执行动态相关下拉表和列名称功能 前任 获取所有表名称并将其显示在下拉字段中 选择特定表后 我想在下拉字段中再次显示其所有列名称 问题是 1 如何从数据库中获取所有表名 2 如何从表中获取所有列名 我尝试了一些文
  • Php mod_rewrite 无法正常工作

    我有一个带有以下链接结构的 php 页面 http localhost wisper businesspage php profile creativeartbd 所以我尝试将此链接转换为以下样式 http localhost wisper
  • PHP字符串比较和相似度索引

    在 PHP 中 有什么优雅的代码可以在两个字符串中查找公共字母而不包含空格 还返回相似性索引 即计算常见字符的数量并返回占字符总数的百分比 假设我有一个字符串 LEGENDARY 而其他字符串为 BARNEY STINSON 所以我需要找到

随机推荐