购买Buy
1-855-856-7678
支持Support
The following code example sets both public access permissions and a container-level access policy on the container. The example then generates a shared access signature for the container.
static void CreateSAS()
{
//Retrieve storage account information from an app.config file.
//This is one way to store and retrieve a connection string if you are writing an application
//that will run locally, rather than in Windows Azure.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageAccountConnectionString"]);
//Create the blob client object.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
//Get a reference to the container for which the shared access signature will be created.
CloudBlobContainer container = blobClient.GetContainerReference("mysascontainer");
container.CreateIfNotExist();
//Create a permission policy to set the public access setting for the container.
BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
//The public access setting explicitly specifies that the container is private, so that it can't be accessed anonymously.
containerPermissions.PublicAccess = BlobContainerPublicAccessType.Off;
//Set the permission policy on the container.
container.SetPermissions(containerPermissions);
// Get the shared access signature to share with users, specifying a signature-level access policy.
string sas = container.GetSharedAccessSignature(new SharedAccessPolicy()
{
SharedAccessStartTime = DateTime.Now,
SharedAccessExpiryTime = DateTime.Now.AddHours(10),
Permissions = SharedAccessPermissions.Write | SharedAccessPermissions.Read
});
//The shared access signature then can be used to create a service client.
//This code would likely be run from a different client, but is included here to
//demonstrate how to consume the shared access signature.
//Create the blob client directly, using the shared access signature
CloudBlobClient sasBlobClient = new CloudBlobClient(storageAccount.BlobEndpoint,
new StorageCredentialsSharedAccessSignature(sas));
//Return a reference to a blob.
CloudBlob blob = sasBlobClient.GetBlobReference("mysascontainer/myblob.txt");
//Upload text to the blob. If the blob does not yet exist, it will be created. If the blob does exist, its existing
//content will be overwritten.
blob.UploadText("Write to a blob using shared access credentials.");
}
The SetPermissions method sets two types of permissions for the container:
Public access permissions, which determine whether container data and blob resources are available for anonymous access.
Container-level access policies, which can be used to specify parameters for a shared access signature for the container.