事件
3月31日 下午11時 - 4月2日 下午11時
最大的網狀架構、Power BI 和 SQL 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊共用存取簽章 (SAS) 可讓您對儲存體帳戶中的容器和 Blob 授與有限的存取權。 當您建立 SAS 時,需要指定其條件約束,包括允許用戶端存取的 Azure 儲存體資源、對這些資源的使用權限,以及 SAS 的有效期限。
每個 SAS 都會以金鑰簽署。 您可以使用下列兩種方式之一簽署 SAS:
注意
使用者委派 SAS 可以為使用儲存體帳戶金鑰簽署的 SAS 提供絕佳的安全性。 Microsoft 建議盡可能採用使用者委派 SAS。 如需詳細資訊,請參閱使用共用存取簽章 (SAS) 授與資料的有限存取權。
本文說明如何使用儲存體帳戶金鑰,搭配適用於 JAVA 的 Blob 儲存體用戶端程式庫,建立容器或 blob 的服務 SAS。
服務 SAS 會使用帳戶存取金鑰加以簽署。 您可以使用 StorageSharedKeyCredential 類別,建立用來簽署服務 SAS 的認證。
您也可以使用預存的存取原則來定義 SAS 的權限和持續時間。 如果提供現有預存存取原則的名稱,該原則將與 SAS 相關聯。 若要深入了解預存存取原則,請參閱定義預存存取原則。 如果未提供任何預存存取原則,本文中的程式碼範例會示範如何定義 SAS 的權限和持續時間。
您可以根據應用程式的需求,為容器或 Blob 建立服務 SAS。
您可以使用下列方法來建立服務 SAS,以委派對容器資源的有限存取權:
SAS 簽章值 (例如到期時間和已簽署的權限) 會作為 BlobServiceSasSignatureValues 執行個體的一部分傳遞給方法。 權限會指定為 BlobContainerSasPermission 執行個體。
下列程式碼範例示範如何建立具有容器資源讀取權限的服務 SAS:
public String createServiceSASContainer(BlobContainerClient containerClient) {
// Create a SAS token that's valid for 1 day, as an example
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
// Assign read permissions to the SAS token
BlobContainerSasPermission sasPermission = new BlobContainerSasPermission()
.setReadPermission(true);
BlobServiceSasSignatureValues sasSignatureValues = new BlobServiceSasSignatureValues(expiryTime, sasPermission)
.setStartTime(OffsetDateTime.now().minusMinutes(5));
String sasToken = containerClient.generateSas(sasSignatureValues);
return sasToken;
}
您可以使用服務 SAS 來授權用戶端物件根據 SAS 授與的權限,在容器或 Blob 上執行作業。
下列程式碼範例示範如何使用服務 SAS 來授權 BlobContainerClient 物件。 此用戶端物件可依據 SAS 授與的權限,用於在容器資源上執行作業。
首先,建立以帳戶存取金鑰簽署的 BlobServiceClient 物件:
String accountName = "<account-name>";
String accountKey = "<account-key>";
StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint(String.format("https://%s.blob.core.windows.net/", accountName))
.credential(credential)
.buildClient();
然後,如同先前範例所示產生服務 SAS,並使用 SAS 來授權 BlobContainerClient 物件:
// Create a SAS token
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("sample-container");
String sasToken = createServiceSASContainer(containerClient);
// Create a new BlobContainerClient using the SAS token
BlobContainerClient sasContainerClient = new BlobContainerClientBuilder()
.endpoint(containerClient.getBlobContainerUrl())
.sasToken(sasToken)
.buildClient();
若要深入了解使用適用於 Java 的 Azure Blob 儲存體用戶端程式庫,請參閱下列資源。
事件
3月31日 下午11時 - 4月2日 下午11時
最大的網狀架構、Power BI 和 SQL 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊訓練
學習路徑
在 Azure 上擴展 Java 應用程式功能 - Training
從這裡開始,並了解如何使用 Java 應用程式取得 Azure 的完整功能 - 使用慣用的程式庫來連線並與您偏好的雲端服務互動,包括 Azure SQL 和 NoSQL 資料庫、傳訊和事件系統、Redis 快取、儲存體和目錄服務。 一如往常,使用您熟悉及喜愛的工具和架構:Spring、Tomcat、WildFly、JBoss、WebLogic、WebSphere、Maven、Gradle、IntelliJ、 Eclipse、Jenkins、Terraform 等。