我正在使用 ClientCredentails 验证我的用户。我的客户确实有权生成 SaS 令牌。现在我想在短时间内从代码生成 SaS 令牌,以便客户可以直接下载文件。
String tenantId = "TenantId";
String clientSecret = "XXXX"
String clientId = "abc-123"
String authorityUrl = AzureAuthorityHosts.AZURE_PUBLIC_CLOUD + tenantId;
ClientSecretCredential credential = new ClientSecretCredentialBuilder()
.authorityHost(authorityUrl)
.tenantId(tenantId)
.clientSecret(clientSecret)
.clientId(clientId)
.build();
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.credential(credential)
.endpoint(azureStorageEndPoint)
.buildClient();
// Upload a file
BlobContainerClient blobContainerClient = blobServiceClient.getBlobContainerClient(containerName);
BlobClient blobClient = blobContainerClient.getBlobClient("Test.txt");
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(new File("<FILE_PATH>")));
blobClient.upload(bufferedInputStream, bufferedInputStream.available(),true);
BlobSasPermission blobSasPermission = new BlobSasPermission().setReadPermission(true);
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
BlobServiceSasSignatureValues values = new BlobServiceSasSignatureValues(expiryTime, blobSasPermission)
.setStartTime(OffsetDateTime.now()); …Run Code Online (Sandbox Code Playgroud)