0
votes

I have uploaded a csv file on azure blob storage. the url will look like the following

https://xxxxxxx.blob.core.windows.net/abc/yyyyyy.csv

Now i have an ingestion policy for adx as follows.

.ingest into table XXX_TABLE (
    h'https://xxxxxxx.blob.core.windows.net/abc/yyyyyy.csv')
 with 
    (   
        format="csv",
        ignoreFirstRecord=true, 
        PropagateIngestionProperties=true,
        ingestionMapping = 
        "[" .. ...."]"))

The ingestion is happening correctly when i make the access level to Container in Blob storage. I tried to make it as private and get the blob with Sas Token it is also working but the SAS token is on the file level, for each file different token it is giving.

I need to generate a SAS token which can be used to access all the files in a specific container, doing so i can dynamically change the file name at run time and access different files, how to do that?

1
You can create a SAS token at the container level. It will be applicable to all Blobs in that container.Gaurav Mantri
Yes we have done it. Could't find any ways to create directly via portal so ended up writing a small script to get SAS token at the container level.Justin Mathew

1 Answers

2
votes

You can create a service SAS with the Azure Portal. This way, you can use one SAS instance to access multiple resources in the container.

Example of potal operation

You can also create a service SAS for a container with .NET. To create a service SAS for a container, call the CloudBlobContainer.GetSharedAccessSignature() method.

You can refer to these links or more information: