CloudBlobContainer.SetPermissions Method (BlobContainerPermissions, BlobRequestOptions) |
See Also Example |
Sets permissions for the container, using a conditional request based on the BlobRequestOptions that you specify. Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
Usage
Visual Basic |
---|
Dim instance As CloudBlobContainer Dim permissions As BlobContainerPermissions Dim options As BlobRequestOptions instance.SetPermissions(permissions, options) |
Syntax
Visual Basic |
---|
Public Sub SetPermissions ( _ permissions As BlobContainerPermissions, _ options As BlobRequestOptions _ ) |
C# |
---|
public void SetPermissions ( BlobContainerPermissions permissions, BlobRequestOptions options ) |
C++ |
---|
public: void SetPermissions ( BlobContainerPermissions^ permissions, BlobRequestOptions^ options ) |
J# |
---|
JScript |
---|
Parameters
- permissions
Type: Microsoft.WindowsAzure.StorageClient.BlobContainerPermissions
The permissions to apply to the container.
- options
Type: Microsoft.WindowsAzure.StorageClient.BlobRequestOptions
An object that specifies any additional options for the request.
Example
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.
C# | Copy Code |
---|---|
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() { // A shared access signature not tied to a container-level access policy // cannot be valid for more than 60 minutes. //If valid immediately, don’t set SharedAccessStartTime, //and specify a duration less than 60 minutes, such as 55 minutes, //to avoid clock skew risk. // SharedAccessStartTime = DateTime.UtcNow, // A shared access signature not tied to a container-level access policy // cannot be valid for more than 60 minutes. //If valid immediately, don’t set SharedAccessStartTime, //to avoid clock skew risk. // SharedAccessStartTime = DateTime.UtcNow, SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(30), 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."); } |
Remarks
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.