Spring boot 如何从azure blob springboot获取共享链接(SAS)?

Spring boot 如何从azure blob springboot获取共享链接(SAS)?,spring-boot,azure-storage-blobs,Spring Boot,Azure Storage Blobs,我需要获得可共享的链接,在这里,世界可以使用SpringBoot查看azure blob中过期的文件。提前谢谢 尝试下面的代码以获取具有blob读取权限的SAS令牌: import com.azure.storage.blob.sas.BlobServiceSasSignatureValues; import com.azure.storage.blob.sas.BlobSasPermission; import com.azure.storage.blob.BlobClient; import

我需要获得可共享的链接,在这里,世界可以使用SpringBoot查看azure blob中过期的文件。提前谢谢

尝试下面的代码以获取具有blob读取权限的SAS令牌:

import com.azure.storage.blob.sas.BlobServiceSasSignatureValues;
import com.azure.storage.blob.sas.BlobSasPermission;
import com.azure.storage.blob.BlobClient;
import com.azure.storage.blob.BlobServiceClient;
import com.azure.storage.blob.BlobServiceClientBuilder;
import java.time.OffsetDateTime;

public class App {
        public static void main(String[] args) {

                String connString = "<storage account connection string>";
                String containerName = "<container name>";
                String blobName = "<blob name>";

                BlobServiceClient client = new BlobServiceClientBuilder().connectionString(connString).buildClient();
                BlobClient blobClient = client.getBlobContainerClient(containerName).getBlobClient(blobName);

                BlobSasPermission blobSasPermission = new BlobSasPermission().setReadPermission(true); // grant read
                                                                                                       // permission
                                                                                                       // onmy
                OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(2); // after 2 days expire
                BlobServiceSasSignatureValues values = new BlobServiceSasSignatureValues(expiryTime, blobSasPermission)
                                .setStartTime(OffsetDateTime.now());

                System.out.println(blobClient.getBlobUrl() + "?" + blobClient.generateSas(values));

        }
}
导入com.azure.storage.blob.sas.blobservicesAssignatureValue;
导入com.azure.storage.blob.sas.BlobSasPermission;
导入com.azure.storage.blob.BlobClient;
导入com.azure.storage.blob.BlobServiceClient;
导入com.azure.storage.blob.BlobServiceClientBuilder;
导入java.time.OffsetDateTime;
公共类应用程序{
公共静态void main(字符串[]args){
字符串connString=“”;
字符串containerName=“”;
字符串blobName=“”;
BlobServiceClient=new BlobServiceClientBuilder().connectionString(connString.buildClient();
BlobClient BlobClient=client.getBlobContainerClient(containerName).getBlobClient(blobName);
BlobSasPermission BlobSasPermission=新建BlobSasPermission().setReadPermission(true);//授予读取权限
//许可
//昂米
OffsetDateTime expiryTime=OffsetDateTime.now().plusDays(2);//两天后到期
BlobServiceSasSignatureValues=新的BlobServiceSasSignatureValues(过期时间,blobSasPermission)
.setStartTime(OffsetDateTime.now());
System.out.println(blobClient.getBlobUrl()+“?”+blobClient.generateSas(values));
}
}
maven依赖项:

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-storage-blob</artifactId>
  <version>12.9.0</version>
</dependency>

com.azure

使用以下URL访问此文件:


你提到过吗?如果我的帖子有帮助,你可以点击复选标记接受吗?是否可以生成永久共享链接?是的,最简单的方法是扩展
expiryTime
,在我的演示代码中,在我的代码中,我刚刚添加了2天的过期时间,你可以添加,例如,3650天(10年)。如果我的帖子对你有帮助,你能点击我答案旁边的复选标记接受吗?如果您还有任何问题,我很乐意为您提供帮助。