/// <summary> /// Constructs a web request to create a new container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="operationContext">An <see cref="OperationContext"/> object for tracking the current operation.</param> /// <param name="accessType">An <see cref="BlobContainerPublicAccessType"/> object that specifies whether data in the container may be accessed publicly and the level of access.</param> /// <returns>A web request to use to perform the operation.</returns> public static HttpWebRequest Create(Uri uri, int? timeout, OperationContext operationContext, BlobContainerPublicAccessType accessType) { UriQueryBuilder containerBuilder = GetContainerUriQueryBuilder(); HttpWebRequest request = HttpWebRequestFactory.Create(uri, timeout, containerBuilder, operationContext); if (accessType != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, accessType.ToString().ToLower(CultureInfo.InvariantCulture)); } return request; }
/// <summary> /// Constructs a web request to create a new container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="accessType">An <see cref="BlobContainerPublicAccessType"/> object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed.</param> /// <returns>A web request to use to perform the operation.</returns> public static HttpRequestMessage Create(Uri uri, int? timeout, HttpContent content, OperationContext operationContext, BlobContainerPublicAccessType accessType) { UriQueryBuilder containerBuilder = GetContainerUriQueryBuilder(); HttpRequestMessage request = HttpRequestMessageFactory.Create(uri, timeout, containerBuilder, content, operationContext); if (accessType != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, accessType.ToString().ToLower()); } return request; }
/// <summary> /// Constructs a web request to set the ACL for a container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="publicAccess">The type of public access to allow for the container.</param> /// <param name="accessCondition">The access condition to apply to the request.</param> /// <param name="operationContext">An <see cref="OperationContext"/> object for tracking the current operation.</param> /// <returns>A web request to use to perform the operation.</returns> public static HttpWebRequest SetAcl(Uri uri, int?timeout, BlobContainerPublicAccessType publicAccess, AccessCondition accessCondition, OperationContext operationContext) { HttpWebRequest request = HttpWebRequestFactory.SetAcl(uri, GetContainerUriQueryBuilder(), timeout, operationContext); if (publicAccess != BlobContainerPublicAccessType.Off) { request.Headers.Add("x-ms-blob-public-access", publicAccess.ToString().ToLower()); } request.ApplyAccessCondition(accessCondition); return(request); }
/// <summary> /// Sets the ACL for the container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="publicAccess">The type of public access to allow for the container.</param> /// <returns><returns>A web request to use to perform the operation.</returns></returns> public static HttpWebRequest SetAcl(Uri uri, int timeout, BlobContainerPublicAccessType publicAccess) { UriQueryBuilder builder = GetContainerUriQueryBuilder(); builder.Add(Constants.QueryConstants.Component, "acl"); HttpWebRequest request = CreateWebRequest(uri, timeout, builder); request.ContentLength = 0; request.Method = "PUT"; if (publicAccess != BlobContainerPublicAccessType.Off) { request.Headers.Add("x-ms-blob-public-access", publicAccess.ToString().ToLower()); } return(request); }
/// <summary> /// Constructs a web request to set the ACL for a container. /// </summary> /// <param name="uri">A <see cref="System.Uri"/> specifying the absolute URI to the container.</param> /// <param name="timeout">An integer specifying the server timeout interval.</param> /// <param name="publicAccess">The type of public access to allow for the container.</param> /// <param name="accessCondition">An <see cref="AccessCondition"/> object that represents the condition that must be met in order for the request to proceed.</param> /// <param name="useVersionHeader">A boolean value indicating whether to set the <i>x-ms-version</i> HTTP header.</param> /// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param> /// <returns>A <see cref="System.Net.HttpWebRequest"/> object.</returns> public static HttpWebRequest SetAcl(Uri uri, int? timeout, BlobContainerPublicAccessType publicAccess, AccessCondition accessCondition, bool useVersionHeader, OperationContext operationContext) { HttpWebRequest request = HttpWebRequestFactory.SetAcl(uri, GetContainerUriQueryBuilder(), timeout, useVersionHeader, operationContext); if (publicAccess != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, publicAccess.ToString().ToLower()); } request.ApplyAccessCondition(accessCondition); return request; }
/// <summary> /// Constructs a web request to set the ACL for a container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="publicAccess">The type of public access to allow for the container.</param> /// <param name="accessCondition">The access condition to apply to the request.</param> /// <returns><returns>A web request to use to perform the operation.</returns></returns> public static HttpRequestMessage SetAcl(Uri uri, int? timeout, BlobContainerPublicAccessType publicAccess, AccessCondition accessCondition, HttpContent content, OperationContext operationContext) { HttpRequestMessage request = HttpRequestMessageFactory.SetAcl(uri, timeout, GetContainerUriQueryBuilder(), content, operationContext); if (publicAccess != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, publicAccess.ToString().ToLower()); } request.ApplyAccessCondition(accessCondition); return request; }
/// <summary> /// Sets the anonymous access level. /// </summary> /// <param name="container">The container.</param> /// <param name="accessType">Type of the access.</param> /// <returns>A Task object.</returns> private static async Task SetAnonymousAccessLevelAsync(CloudBlobContainer container, BlobContainerPublicAccessType accessType) { try { // Read the existing permissions first so that we have all container permissions. // This ensures that we do not inadvertently remove any shared access policies while setting the public access level. BlobContainerPermissions permissions = await container.GetPermissionsAsync(); // Set the container's public access level. permissions.PublicAccess = BlobContainerPublicAccessType.Container; await container.SetPermissionsAsync(permissions); Console.WriteLine("Container public access set to {0}", accessType.ToString()); Console.WriteLine(); } catch (StorageException e) { Console.WriteLine(e.Message); Console.ReadLine(); throw; } }
/// <summary> /// Constructs a web request to create a new container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="accessType">An <see cref="BlobContainerPublicAccessType"/> object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed.</param> /// <returns>A web request to use to perform the operation.</returns> public static StorageRequestMessage Create(Uri uri, int?timeout, HttpContent content, OperationContext operationContext, BlobContainerPublicAccessType accessType, ICanonicalizer canonicalizer, StorageCredentials credentials) { UriQueryBuilder containerBuilder = GetContainerUriQueryBuilder(); StorageRequestMessage request = HttpRequestMessageFactory.Create(uri, timeout, containerBuilder, content, operationContext, canonicalizer, credentials); if (accessType != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, accessType.ToString().ToLower()); } return(request); }
/// <summary> /// Constructs a web request to set the ACL for a container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="publicAccess">The type of public access to allow for the container.</param> /// <param name="accessCondition">The access condition to apply to the request.</param> /// <returns><returns>A web request to use to perform the operation.</returns></returns> public static StorageRequestMessage SetAcl(Uri uri, int?timeout, BlobContainerPublicAccessType publicAccess, AccessCondition accessCondition, HttpContent content, OperationContext operationContext, ICanonicalizer canonicalizer, StorageCredentials credentials) { StorageRequestMessage request = HttpRequestMessageFactory.SetAcl(uri, timeout, GetContainerUriQueryBuilder(), content, operationContext, canonicalizer, credentials); if (publicAccess != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, publicAccess.ToString().ToLower()); } request.ApplyAccessCondition(accessCondition); return(request); }
/// <summary> /// Constructs a web request to create a new container. /// </summary> /// <param name="uri">A <see cref="System.Uri"/> specifying the absolute URI to the container.</param> /// <param name="timeout">An integer specifying the server timeout interval.</param> /// <param name="useVersionHeader">A flag indicating whether to set the x-ms-version HTTP header.</param> /// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param> /// <param name="accessType">An <see cref="BlobContainerPublicAccessType"/> object that specifies whether data in the container may be accessed publicly and the level of access.</param> /// <returns>A <see cref="System.Net.HttpWebRequest"/> object.</returns> public static HttpWebRequest Create(Uri uri, int?timeout, bool useVersionHeader, OperationContext operationContext, BlobContainerPublicAccessType accessType) { UriQueryBuilder containerBuilder = GetContainerUriQueryBuilder(); HttpWebRequest request = HttpWebRequestFactory.Create(uri, timeout, containerBuilder, useVersionHeader, operationContext); if (accessType != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, accessType.ToString().ToLower(CultureInfo.InvariantCulture)); } return(request); }
/// <summary> /// Constructs a web request to create a new container. /// </summary> /// <param name="uri">A <see cref="System.Uri"/> specifying the absolute URI to the container.</param> /// <param name="timeout">An integer specifying the server timeout interval.</param> /// <param name="useVersionHeader">A boolean value indicating whether to set the <i>x-ms-version</i> HTTP header.</param> /// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param> /// <param name="accessType">An <see cref="BlobContainerPublicAccessType"/> object that specifies whether data in the container may be accessed publicly and the level of access.</param> /// <returns>A <see cref="System.Net.HttpWebRequest"/> object.</returns> public static HttpWebRequest Create(Uri uri, int?timeout, bool useVersionHeader, OperationContext operationContext, BlobContainerPublicAccessType accessType) { if (accessType == BlobContainerPublicAccessType.Unknown) { throw new ArgumentException(SR.ArgumentOutOfRangeError, "accessType"); } UriQueryBuilder containerBuilder = GetContainerUriQueryBuilder(); HttpWebRequest request = HttpWebRequestFactory.Create(uri, timeout, containerBuilder, useVersionHeader, operationContext); if (accessType != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, accessType.ToString().ToLower(CultureInfo.InvariantCulture)); } return(request); }
/// <summary> /// Constructs a web request to set the ACL for a container. /// </summary> /// <param name="uri">A <see cref="System.Uri"/> specifying the absolute URI to the container.</param> /// <param name="timeout">An integer specifying the server timeout interval.</param> /// <param name="publicAccess">The type of public access to allow for the container.</param> /// <param name="accessCondition">An <see cref="AccessCondition"/> object that represents the condition that must be met in order for the request to proceed.</param> /// <param name="useVersionHeader">A boolean value indicating whether to set the <i>x-ms-version</i> HTTP header.</param> /// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param> /// <returns>A <see cref="System.Net.HttpWebRequest"/> object.</returns> public static HttpWebRequest SetAcl(Uri uri, int?timeout, BlobContainerPublicAccessType publicAccess, AccessCondition accessCondition, bool useVersionHeader, OperationContext operationContext) { if (publicAccess == BlobContainerPublicAccessType.Unknown) { throw new ArgumentException(SR.ArgumentOutOfRangeError, "accessType"); } HttpWebRequest request = HttpWebRequestFactory.SetAcl(uri, GetContainerUriQueryBuilder(), timeout, useVersionHeader, operationContext); if (publicAccess != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, publicAccess.ToString().ToLower()); } request.ApplyAccessCondition(accessCondition); return(request); }
/// <summary> /// Constructs a web request to create a new container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="accessType">An <see cref="BlobContainerPublicAccessType"/> object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed.</param> /// <returns>A web request to use to perform the operation.</returns> public static StorageRequestMessage Create(Uri uri, int?timeout, HttpContent content, OperationContext operationContext, BlobContainerPublicAccessType accessType, BlobContainerEncryptionScopeOptions encryptionScopeOptions, ICanonicalizer canonicalizer, StorageCredentials credentials) { UriQueryBuilder containerBuilder = GetContainerUriQueryBuilder(); StorageRequestMessage request = HttpRequestMessageFactory.Create(uri, timeout, containerBuilder, content, operationContext, canonicalizer, credentials); if (accessType != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, accessType.ToString().ToLower()); } if (null != encryptionScopeOptions) { request.Headers.Add(Constants.HeaderConstants.DefaultEncryptionScopeHeader, encryptionScopeOptions.DefaultEncryptionScope); request.Headers.Add(Constants.HeaderConstants.PreventEncryptionScopeOverrideHeader, encryptionScopeOptions.PreventEncryptionScopeOverride ? Constants.HeaderConstants.TrueHeader : Constants.HeaderConstants.FalseHeader); } return(request); }
/// <summary> /// Sets the ACL for the container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="publicAccess">The type of public access to allow for the container.</param> /// <returns><returns>A web request to use to perform the operation.</returns></returns> public static HttpWebRequest SetAcl(Uri uri, int timeout, BlobContainerPublicAccessType publicAccess) { UriQueryBuilder builder = GetContainerUriQueryBuilder(); builder.Add(Constants.QueryConstants.Component, "acl"); HttpWebRequest request = CreateWebRequest(uri, timeout, builder); request.ContentLength = 0; request.Method = "PUT"; if (publicAccess != BlobContainerPublicAccessType.Off) { request.Headers.Add("x-ms-blob-public-access", publicAccess.ToString().ToLower()); } return request; }