繁体   English   中英

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

[英]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 的密钥被轮换。

摘自Java 客户端库文档

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM