Jim*_*m L 2 google-cloud-storage
我正在使用Google Cloud Platform PHP客户端库(https://github.com/google/google-api-php-client)将文件上传到项目中的存储桶.我需要能够使用来自另一个域的AJAX请求来获取文件,因此需要添加标头
Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)
我正在试图解决这个问题 - 我的谷歌搜索毫无结果.代码示例供参考:
$client = new Google_Client();
$client->setApplicationName("Test");
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/cloud-platform');
$storage = new Google_Service_Storage($client);
$file_name = "test.txt";
$file_content = "this is a test";
$postbody = array(
'name' => $file_name,
'data' => $file_content,
'uploadType' => "media",
'predefinedAcl' => 'publicRead'
);
$gsso = new Google_Service_Storage_StorageObject();
$gsso->setName( $file_name );
$result = $storage->objects->insert( "my_bucket", $gsso, $postbody );
Run Code Online (Sandbox Code Playgroud)
文件正确上传,可以在存储桶中查看,但没有正确的标题,因为我不知道如何添加它们.事实上,我甚至找不到使用Cloud Platform Console手动添加这些标头的方法.任何指针都表示赞赏,谢谢
Jim*_*m L 10
所以我终于找到了我需要的文档,它只能为存储桶本身设置CORS配置(它在文件级别是不可配置的).这里使用gsutil或XML API执行此操作的说明
我用内容创建了一个cors-json-file.json:
[
{
"origin": ["*"],
"method": ["*"]
}
]
Run Code Online (Sandbox Code Playgroud)
然后跑了
gsutil cors set cors-json-file.json gs://my_bucket
Run Code Online (Sandbox Code Playgroud)
可以使用查看桶的现有CORS配置
gsutil cors get gs://my_bucket
Run Code Online (Sandbox Code Playgroud)
可以在Google Bucket API参考中找到完整的配置选项列表
无论是否存在缓存问题我都不确定,但这似乎仅适用于在进行 CORS配置更改后添加到存储桶中的文件,但是我很高兴能够更正
| 归档时间: |
|
| 查看次数: |
3130 次 |
| 最近记录: |