私はJAVA
を取得するメソッドを持っています。URL
これを使用して、Google Cloud Storageのバケットにオブジェクトをアップロードできます。生成されたものURL
は30秒間有効です(テスト済み)。
public String getSignedUploadLink(String bucketName, String objectName, String mimeType)
throws Exception {
try {
// check if bucket exists, and create one with notification, if it doesn't.
if (!bucketExists(bucketName)) {
createBucket(bucketName);
}
// Define Resource
BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(bucketName, objectName)).build();
// Specify the object's content type.
Map<String, String> extensionHeaders = new HashMap<>();
extensionHeaders.put("Content-Type", mimeType);
//setting it to expire in 30 seconds
return storage.signUrl(
blobInfo,
30,
TimeUnit.SECONDS,
Storage.SignUrlOption.httpMethod(HttpMethod.PUT),
Storage.SignUrlOption.withExtHeaders(extensionHeaders),
Storage.SignUrlOption.withV4Signature()).toString();
} catch (Exception e) {
// Handle the caught exception
}
}
HTTP PUT
上記の方法で生成されたリンクで使用すると、Google Cloud Storageにオブジェクトを正常にアップロードできます。奇妙なことに、有効期限が切れる前に同じオブジェクトに別のPUT
リクエストを送信すると、もちろん同じコンテンツタイプの別のオブジェクトをアップロードすることもできますURL
。
このように動作するはずですか?アップロードリンクを使用して何かをアップロードすると、有効期限に関係なく、リンク自体が無効になるという印象を受けました。ここに何かが足りないのでしょうか?本当にこれでいくつかの助けを使うことができました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加