You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2024/01/22 15:24:12 UTC
(camel) branch main updated: Imporve azure blob SAS doc
This is an automated email from the ASF dual-hosted git repository.
fmariani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new f97b5f1aaf8 Imporve azure blob SAS doc
f97b5f1aaf8 is described below
commit f97b5f1aaf8841d27b3f308df1d00942c45b68c4
Author: Croway <fe...@gmail.com>
AuthorDate: Mon Jan 22 14:40:02 2024 +0100
Imporve azure blob SAS doc
---
.../main/docs/azure-storage-blob-component.adoc | 44 ++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
index 93f1826e9b3..5756fce986a 100644
--- a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
+++ b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
@@ -535,6 +535,50 @@ from("direct:copyBlob")
In this way the file.txt in the container containerblob1 of the account 'account', will be copied to the container containerblob2 of the same account.
+=== SAS Token generation example
+
+SAS Blob Container tokens can be generated programmatically or via Azure UI. In order to generate the token with java code, the following can be done:
+
+[source,java]
+--------------------------------------------------------------------------------
+
+BlobContainerClient blobClient = new BlobContainerClientBuilder()
+ .endpoint(String.format("https://%s.blob.core.windows.net/%s", accountName, accessKey))
+ .containerName(containerName)
+ .credential(new StorageSharedKeyCredential(accountName, accessKey))
+ .buildClient();
+
+ // Create a SAS token that's valid for 1 day, as an example
+ OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
+
+ // Assign permissions to the SAS token
+ BlobContainerSasPermission blobContainerSasPermission = new BlobContainerSasPermission()
+ .setWritePermission(true)
+ .setListPermission(true)
+ .setCreatePermission(true)
+ .setDeletePermission(true)
+ .setAddPermission(true)
+ .setReadPermission(true);
+
+ BlobServiceSasSignatureValues sasSignatureValues = new BlobServiceSasSignatureValues(expiryTime, blobContainerSasPermission);
+
+ return blobClient.generateSas(sasSignatureValues);
+--------------------------------------------------------------------------------
+
+The generated SAS token can be then stored to an application.properties file so that it can be loaded by the camel route, example:
+
+[source,properties]
+--------------------------------------------------------------------------------
+
+camel.component.azure-storage-blob.sas-token=MY_TOKEN_HERE
+--------------------------------------------------------------------------------
+
+[source,java]
+--------------------------------------------------------------------------------
+
+from("direct:copyBlob")
+ .to("azure-storage-blob://account/containerblob2?operation=uploadBlockBlob&credentialType=AZURE_SAS")
+--------------------------------------------------------------------------------
=== Development Notes (Important)