gpt4 book ai didi

php - 上传的图片未在 Google Cloud Storage 上设置为公开 - Google App Engine

转载 作者:可可西里 更新时间:2023-11-01 00:58:56 27 4
gpt4 key购买 nike

我遇到了一个问题。我确实遵循了 Google app-engine - Uploaded files not public on google cloud storage 的两个答案,但仍然没有运气。图片在上传到存储桶时没有设置为公开

这是我的代码:

// Google API to create an absolute URL that can be used by a user to asynchronously upload a large blob
require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
use google\appengine\api\cloud_storage\CloudStorageTools;

// The name of cloud storage bucket
$options = [ 'gs_bucket_name' => 'example_images' ];
$upload_url = CloudStorageTools::createUploadUrl('/test.php', $options);

$fileName = 'gs://example_images/'.$_FILES['file']['name'];
echo $fileName."\n";

$options = array('gs'=>array('acl'=>'public-read','Content-Type' => $_FILES['file']['type']));
$ctx = stream_context_create($options);

if (false == rename($_FILES['file']['tmp_name'], $fileName, $ctx)) {
die('Could not rename.');
}

$object_public_url = CloudStorageTools::getPublicUrl($fileName, false);

print("Successfull! ");

我做错了什么?请帮助我

最佳答案

最简单的方法是更改​​该存储桶上的默认对象 ACL:

  1. 转到 https://console.developers.google.com/project/_/storage/browser
  2. 点击bucket名称右边的3个垂直点的按钮
  3. 点击编辑对象默认权限
  4. 将所有用户添加为具有读取权限的用户

我在 python 项目中使用它 like this (在 php 中可能类似):

    "acl": [{"entity": "allUsers", "role": "READER"}],
"contentType": "application/pdf",
"contentEncoding": "UTF8"

关于php - 上传的图片未在 Google Cloud Storage 上设置为公开 - Google App Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33071056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com