使用Google Cloud Storage API和开发人员密钥(不是OAuth2)

亚历克斯

我想通过一些控制台命令将文件上传到Google Cloud。据我所知,OAuth2无法做到这一点,所以我需要使用Api密钥。但是什么都行不通。我试过了

$ch = curl_init();
$url = 'https://www.googleapis.com/upload/storage/v1/b/temp/o?uploadType=media&name=p11&key='.$this->key;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: key '.$this->key
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '@/var/www/test.txt');
$content = curl_exec($ch);
var_dump($content);

发生错误:

{ "error": { "errors": [ { "domain": "global", "reason": "authError", "message": "Invalid Credentials", 
  "locationType": "header", "location": "Authorization" } ],
  "code": 401, "message": "Invalid Credentials" } }

我尝试了php-sdk

$client = new Google_Client();
$client->setApplicationName("alasdg");
$client->setDeveloperKey($this->key);
$client->setScopes(['https://www.googleapis.com/auth/devstorage.read_write']);
$client->getAuth();

$storageService = new Google_Service_Storage($client);
$buckets = $storageService->buckets->listBuckets('temp');
var_dump($buckets);exit;

错误是:

Error calling GET https://www.googleapis.com/storage/v1/b?project=temp&key=afJwBJWucqvIU: (400) Invalid argument.

我可以在没有OAuth2的情况下上传文件吗?

内森·赫林(Nathan Herring)

Invalid Credentials错误表明您的Authorization标头在某种程度上无效,并且您需要刷新OAuth 2.0访问令牌。由于API密钥不是有效的访问令牌,因此可以对其进行解释。您可能想要构造一个看起来像Authorization: Bearer ya29.xxxxxxxx“ ya29”等作为访问令牌的标头。凭证交换由php-sdk代表您完成。

您收到的第二个错误是因为很可能没有项目ID为“ temp”的项目。这有点麻烦,因为您可以为项目分配一个“友好名称”,但是该名称可以在许多项目之间共享,并且不是唯一的标识符。您必须使用命名的项目ID,或者,如果尚未分配项目名称,则可以使用数字项目ID,当您在https://console.developers.google中查看该URL时,该数字将显示在URL中。 com /

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Google Cloud Storage API和开发人员密钥(不是OAuth2)

来自分类Dev

如何使用Google API从Google Cloud Storage获取报告

来自分类Dev

是否使用Java API在Google Cloud Storage中批量插入?

来自分类Dev

使用.boto Google Cloud Storage API进行身份验证

来自分类Dev

使用PHP API可恢复上传到Google Cloud Storage

来自分类Dev

在本地主机上使用Google Cloud Storage JSON API

来自分类Dev

来自 Kubernetes 部署的 Google Cloud Bucket 连接使用 Storage API

来自分类Dev

配置Django和Google Cloud Storage?

来自分类Dev

Google Cloud Storage API 写入限制

来自分类Dev

为API使用开发人员密钥

来自分类Dev

从Google Cloud Function生成Cloud Storage签名URL,而无需使用显式密钥文件

来自分类Dev

在浏览器中使用文件名而不是密钥访问本地 Google Cloud Storage 文件

来自分类Dev

使用Cloud Storage API上传文件

来自分类Dev

使用Google Cloud Dataflow合并Google Cloud Storage中的文件

来自分类Dev

如何使用存储在Google Cloud Storage中的图像调用Google Vision API?

来自分类Dev

使用DoFn使用Cloud Dataflow从PubSub写入Google Cloud Storage

来自分类Dev

Google Cloud Storage与Google Cloud CDN

来自分类Dev

Android Studio-由多个开发人员使用Google Maps API的密钥

来自分类Dev

Android Studio-由多个开发人员使用Google Maps API的密钥

来自分类Dev

使用C#中的HMAC密钥将文件上传到Google Cloud Storage

来自分类Dev

Google Cloud Storage Force下载

来自分类Dev

上载Google Cloud Storage iOS

来自分类Dev

Android的Google Cloud Storage管理

来自分类Dev

Configure Django and Google Cloud Storage?

来自分类Dev

IP限制Google Cloud Storage

来自分类Dev

Google Cloud Storage - 权限不足

来自分类Dev

如何使用Rails和Paperclip在Google Cloud Storage上存储照片?

来自分类Dev

使用globStatus和Google Cloud Storage存储桶作为输入时,无法运行Spark作业

来自分类Dev

如何使用带有校验和控制的Java从Google Cloud Storage下载大文件

Related 相关文章

  1. 1

    使用Google Cloud Storage API和开发人员密钥(不是OAuth2)

  2. 2

    如何使用Google API从Google Cloud Storage获取报告

  3. 3

    是否使用Java API在Google Cloud Storage中批量插入?

  4. 4

    使用.boto Google Cloud Storage API进行身份验证

  5. 5

    使用PHP API可恢复上传到Google Cloud Storage

  6. 6

    在本地主机上使用Google Cloud Storage JSON API

  7. 7

    来自 Kubernetes 部署的 Google Cloud Bucket 连接使用 Storage API

  8. 8

    配置Django和Google Cloud Storage?

  9. 9

    Google Cloud Storage API 写入限制

  10. 10

    为API使用开发人员密钥

  11. 11

    从Google Cloud Function生成Cloud Storage签名URL,而无需使用显式密钥文件

  12. 12

    在浏览器中使用文件名而不是密钥访问本地 Google Cloud Storage 文件

  13. 13

    使用Cloud Storage API上传文件

  14. 14

    使用Google Cloud Dataflow合并Google Cloud Storage中的文件

  15. 15

    如何使用存储在Google Cloud Storage中的图像调用Google Vision API?

  16. 16

    使用DoFn使用Cloud Dataflow从PubSub写入Google Cloud Storage

  17. 17

    Google Cloud Storage与Google Cloud CDN

  18. 18

    Android Studio-由多个开发人员使用Google Maps API的密钥

  19. 19

    Android Studio-由多个开发人员使用Google Maps API的密钥

  20. 20

    使用C#中的HMAC密钥将文件上传到Google Cloud Storage

  21. 21

    Google Cloud Storage Force下载

  22. 22

    上载Google Cloud Storage iOS

  23. 23

    Android的Google Cloud Storage管理

  24. 24

    Configure Django and Google Cloud Storage?

  25. 25

    IP限制Google Cloud Storage

  26. 26

    Google Cloud Storage - 权限不足

  27. 27

    如何使用Rails和Paperclip在Google Cloud Storage上存储照片?

  28. 28

    使用globStatus和Google Cloud Storage存储桶作为输入时,无法运行Spark作业

  29. 29

    如何使用带有校验和控制的Java从Google Cloud Storage下载大文件

热门标签

归档