首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Google云存储进行下载时权限被拒绝

使用Google云存储进行下载时权限被拒绝
EN

Stack Overflow用户
提问于 2019-06-11 21:13:14
回答 2查看 2.7K关注 0票数 0

我正在尝试在Google Cloud Storage上获取存储桶中的对象。为此,我在其API页面上使用了Google推荐的代码:

https://cloud.google.com/storage/docs/downloading-objects#storage-download-object-php

但是当我这样做的时候,我得到了一个权限被拒绝的错误。

我为Composer配置了权限(例如,列出存储桶中的对象的代码运行良好),但我不能下载任何内容。我得到了这个错误:

警告: fopen(C:\wamp64\www\test):无法打开流:在第602行的C:\wamp64\www\test\vendor\google\cloud-storage\src\StorageObject.php中权限被拒绝

我给了自己在云存储控制台的所有权限,但仍然出现错误。

我还想知道,有没有可能在不下载的情况下获取/复制对象的内容?

谢谢你的帮助!

编辑:代码非常简单:

代码语言:javascript
复制
$storage = new StorageClient($config = [ 
    'keyFilePath' => "[PATH OF MY KEYFILE]",
    'projectId' => $projectId
]);
$bucket = $storage->bucket($bucketName);
$object = $bucket->object($objectName);
$object->downloadToFile($destination);
printf('Downloaded gs://%s/%s to %s' . PHP_EOL,
    $bucketName, $objectName, basename($destination));

}

在存储中,我只有一个带有对象列表的bucket,我需要获取content/dl,其中一个要与另一个Json合并

EN

回答 2

Stack Overflow用户

发布于 2019-06-12 01:56:38

要使单个对象公开可读,请执行以下操作:

https://cloud.google.com/storage/docs/access-control/making-data-public

验证下一个代码:

函数download_object($bucketName,$objectName,$destination)

{

代码语言:javascript
复制
$storage = new StorageClient();

$bucket = $storage->bucket($bucketName);

$object = $bucket->object($objectName);

$object->downloadToFile($destination);

printf('Downloaded gs://%s/%s to %s' . PHP_EOL,
    $bucketName, $objectName, basename($destination));

}

票数 0
EN

Stack Overflow用户

发布于 2019-06-12 06:15:36

解决方案:我无法将对象下载到PHP代码所在的文件夹之外。目标需要是目录。'/my-file.json‘

谢谢大家

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56544576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档