[英]How to generate URL file from cloud storage without duration in Spring
下面是我做的云存储生成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。
Cloud Storage Signed Urls的最长到期延迟为 7 天。
您在创建签名的 URL 时指定过期时间。知道 URL 的任何人都可以访问该资源,直到达到 URL 的过期时间或用于签署 URL 的密钥被轮换。
请注意,V4 签名 URL 的有效期不能超过 7 天。
您还可以在此处查看更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.