0
<?php 

$url="https://www.googleapis.com/storage/v1/b/sts_bucket/o?key=xxx&project=xxxxx 
$ch=curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$json_response = curl_exec($ch); 

if ($json_response == FALSE){ 
    echo "cURL error: " . curl_error($ch); 
} 

curl_close($ch); 

echo "</pre>"; 
echo $json_response; 
echo "</pre>"; 


?> 

私は、バケット情報を取得するためにGoogleクラウドストレージへのリクエストに応じて作成しています。ただし、次のエラーが表示されます。 -Google Cloud Storageバケットのコンテンツ

{ "error": { "errors": [ { "domain": "global", "reason": "required", 
"message": "Anonymous users does not have storage.objects.list access to 
bucket sts_bucket.", "locationType": "header", "location": "Authorization" 
} ], "code": 401, "message": "Anonymous users does not have 
storage.objects.list access to bucket sts_bucket." } } 

答えて

0

許可:ヘッダーを含める必要があります。

gsutil -d ls 

をし、承認のためのデバッグ出力で見て:: たとえば実行してみてくださいヘッダには含まれています。出力は次のようになります。

... 
connect: (www.googleapis.com, 443) 
send: 'GET /storage/v1/b?project=your-project&fields=nextPageToken%2Citems%2Fid&alt=json&projection=noAcl&maxResults=1000 HTTP/1.1\r\nHost: www.googleapis.com\r\ncontent-length: 0\r\nauthorization: Bearer your-oauth-token\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools gsutil/4.27 Python/2.7.6 (linux2) analytics/enabled\r\n\r\n' 
reply: 'HTTP/1.1 200 OK\r\n' 
... 

これにより、コードを変更する必要があることがわかります。

+0

しかし、上記のコードでどのように生成できますか? –

+0

操作を実行するために必要なアクセストークンは一定期間有効であり、トークンが期限切れになったときに新しいトークンを取得する必要があるため、OAuth2ベースの認証を手作業で行うことをお勧めします(https://cloud.google。 com/docs/authentication/getting-started)にアクセスします。代わりに、OAuth2を扱うライブラリを使用する方が簡単です。私はPHP OAuth2ライブラリの経験はありませんが、おそらく、これらのライブラリの1つから使用可能なライブラリを見つけることができます:https://www.google.com/search?q=php+oauth2 –

関連する問題