ここに公開バケットがあります: http://storage.googleapis.com/tripket1/
そして、このバケット内のすべてのファイルには、ACL が「public-read」に設定されています。それでも、次のようなファイルを表示しようとすると:
http://storage.googleapis.com/tripket1/2013-05-25%2019.17.32_150.jpg
「NoSuchKey」エラーを返します。
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
</Error>
この問題の原因は何ですか? これらのファイルは、Java 用 GCS クライアント ライブラリを使用してアップロードされました。アップローダーから抜粋したコードは次のとおりです。
GcsFilename thumbGcsFilename = new GcsFilename(bucketName, thumb_filename);
GcsFileOptions options = new GcsFileOptions.Builder().mimeType("image/" + photo_extension).acl("public-read").build();
GcsOutputChannel outputChannel = gcsService.createOrReplace(thumbGcsFilename, options);
outputChannel.write(ByteBuffer.wrap(newImageData));
outputChannel.close();
LOGGER.info("Wrote file");
String thumb_url_str = String.format("http://storage.googleapis.com/%s/%s", bucketName, thumb_filename);
return thumb_url_str;