如何在春季从云存储中生成没有持续时间的URL文件



以下是我从云存储生成的源代码url

public String generateImageUrl(String fileName, Integer duration, String folderName) throws IOException {
Credentials credentials = GoogleCredentials.fromStream(new ClassPathResource(STORAGE_FILE_NAME).getInputStream());
Storage storage = StorageOptions.newBuilder().setCredentials(credentials).setProjectId(PROJECT_ID).build().getService();
Bucket bucket = storage.get(BUCKET_NAME, Storage.BucketGetOption.fields(Storage.BucketField.values()));
logger.info("Bucket name : " + bucket.getName());
String fullImagePath = folderName + "/" + fileName;
BlobId imgId = BlobId.of(BUCKET_NAME, fullImagePath);
if(null!=imgId) {
Blob blob = storage.get(imgId);
if(null!=blob && blob.exists()) {
URL signedUrl = storage.signUrl(blob, duration, TimeUnit.MINUTES);
String imageUrl = signedUrl.toExternalForm();
logger.info("Generated image url : " + imageUrl);
return imageUrl;
}
}
return null;
}

但是生成的网址有访问持续时间

如何实现它以便不给出访问持续时间?

无法创建没有访问持续时间的签名 URL。

云存储签名 URL 的最长过期延迟为 7 天。

您可以在创建签名 URL 时指定过期时间。任何人 谁知道 URL 可以访问资源,直到过期时间 以访问 URL 或轮换用于对 URL 进行签名的密钥。

摘自 Java 客户端库文档

请注意,V4 签名 URL 的过期时间不能超过 7 天。

您还可以在此处查看更多详细信息。

最新更新