GetPermissions() публичный Метод

Gets the permissions settings for the container.
public GetPermissions ( ) : Microsoft.WindowsAzure.StorageClient.BlobContainerPermissions
Результат Microsoft.WindowsAzure.StorageClient.BlobContainerPermissions
Пример #1
0
        public Storage(CloudStorageAccount account)
        {
            this.account = account;

            fileStorage = account.CreateCloudBlobClient();

            /* Initialize file container */
            container = fileStorage.GetContainerReference(filesContainer);
            container.CreateIfNotExist();

            var permissions = container.GetPermissions();
            /* Full permissions. From MSDN, Container-level public access. Anonymous clients can
             * read blob content and metadata and container metadata, and can list the blobs within the container.
             *
             * Other alternatives are Blob (can read content but not metadata) and Off (no
             * anonymous access).
             */
            // permissions.PublicAccess = BlobContainerPublicAccessType.Container;
            permissions.PublicAccess = BlobContainerPublicAccessType.Off;

            permissions.SharedAccessPolicies.Remove("basic");
            permissions.SharedAccessPolicies.Add("basic", new SharedAccessPolicy()
            {
            });

            container.SetPermissions(permissions);

            /* Initialize table (for file metadata) */
            CloudTableClient.CreateTablesFromModel(
                typeof(FileDataContext),
                account.TableEndpoint.AbsoluteUri,
                account.Credentials);
        }
        public override bool OnStart()
        {
            // Set the maximum number of concurrent connections
            ServicePointManager.DefaultConnectionLimit = 100;

            //Initialize Indexer
            storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("CrawlerStorage"));

            //Initialize URL Queue
            urlQueueClient = storageAccount.CreateCloudQueueClient();
            urlQueue = urlQueueClient.GetQueueReference("urlqueue");
            if (urlQueue.CreateIfNotExist())
            {
                //Add first URL to the queue
                CloudQueueMessage firstURL = new CloudQueueMessage(startURL);
                urlQueue.AddMessage(firstURL);
            }

            //Initialize Index Queue
            indexQueueClient = storageAccount.CreateCloudQueueClient();
            indexQueue = indexQueueClient.GetQueueReference("indexqueue");
            indexQueue.CreateIfNotExist();

            //Initialize Database Blob
            databaseClient = storageAccount.CreateCloudBlobClient();
            databaseContainer = databaseClient.GetContainerReference("wordfrequencies");
            databaseContainer.CreateIfNotExist();
            var permission = databaseContainer.GetPermissions();
            permission.PublicAccess = BlobContainerPublicAccessType.Container;
            databaseContainer.SetPermissions(permission);

            return base.OnStart();
        }
Пример #3
0
 public void CreateIfNotExist(CloudBlobContainer cloudBlobContainer, bool isPublic = true)
 {
     cloudBlobContainer.CreateIfNotExist();
     var permission = cloudBlobContainer.GetPermissions();
     var blobContainerPermissions = new BlobContainerPermissions {PublicAccess = isPublic ? BlobContainerPublicAccessType.Container : BlobContainerPublicAccessType.Off};
     cloudBlobContainer.SetPermissions(blobContainerPermissions);
 }
Пример #4
0
        public override bool OnStart()
        {
            // Set the maximum number of concurrent connections
            ServicePointManager.DefaultConnectionLimit = 12;

            DiagnosticMonitor.Start("DiagnosticsConnectionString");

            // For information on handling configuration changes
            // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
            RoleEnvironment.Changing += RoleEnvironmentChanging;

            // read storage account configuration settings
            CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter)
                => configSetter(RoleEnvironment.GetConfigurationSettingValue(configName)));

            var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");

            // initialize blob storage
            CloudBlobClient blobStorage = storageAccount.CreateCloudBlobClient();
            container = blobStorage.GetContainerReference("converteddata");

            // initialize queue storage
            CloudQueueClient queueStorage = storageAccount.CreateCloudQueueClient();
            queue = queueStorage.GetQueueReference("workercommands");

            Trace.TraceInformation("Creating container and queue...");

            bool storageInitialized = false;
            while (!storageInitialized)
            {
                try
                {
                    // create the blob container and allow public access
                    container.CreateIfNotExist();
                    var permissions = container.GetPermissions();
                    permissions.PublicAccess = BlobContainerPublicAccessType.Container;
                    container.SetPermissions(permissions);

                    // create the message queue
                    queue.CreateIfNotExist();
                    storageInitialized = true;
                }
                catch (StorageClientException e)
                {
                    if (e.ErrorCode == StorageErrorCode.TransportError)
                    {
                        Trace.TraceError("Storage services initialization failure. "
                          + "Check your storage account configuration settings. If running locally, "
                          + "ensure that the Development Storage service is running. Message: '{0}'", e.Message);
                        Thread.Sleep(5000);
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            return base.OnStart();
        }
        public override bool OnStart()
        {
            //Initialize Indexer
            storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("CrawlerStorage"));

            //Initialize Database Blob
            databaseClient = storageAccount.CreateCloudBlobClient();
            databaseContainer = databaseClient.GetContainerReference("wordfrequencies");
            databaseContainer.CreateIfNotExist();
            var permission = databaseContainer.GetPermissions();
            permission.PublicAccess = BlobContainerPublicAccessType.Container;
            databaseContainer.SetPermissions(permission);

            return base.OnStart();
        }
Пример #6
0
    /// <summary>
    /// Init Azure Storage if needed
    /// </summary>
    private static void InitAzureStorage()
    {
      if (storageAccount == null)
      {
        storageAccount = CloudStorageAccount.FromConfigurationSetting(connectionString);

        if (blobClient == null)
        {
          blobClient = storageAccount.CreateCloudBlobClient();
          blobContainer = blobClient.GetContainerReference(FilesFolder);
          blobContainer.CreateIfNotExist();

          var permissions = blobContainer.GetPermissions();
          permissions.PublicAccess = BlobContainerPublicAccessType.Container;
          blobContainer.SetPermissions(permissions);
        }
      }
    }
Пример #7
0
        private void InitializeStorage()
        {
            if (storageInitialized)
            {
                return;
            }

            lock (gate)
            {
                if (storageInitialized)
                {
                    return;
                }

                try
                {
                    // read account configuration settings
                    CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");

                    CloudBlobClient blobStorage = storageAccount.CreateCloudBlobClient();
                    blobContainer = blobStorage.GetContainerReference(blobContainerAddress);
                    blobContainer.CreateIfNotExist();

                    // configure container for public access
                    BlobContainerPermissions permissions = blobContainer.GetPermissions();
                    permissions.PublicAccess = BlobContainerPublicAccessType.Container;
                    blobContainer.SetPermissions(permissions);

                    // create queue to communicate with worker role
                    queueClient = storageAccount.CreateCloudQueueClient();

                    CloudQueue requestQueue = queueClient.GetQueueReference(requestQueueAddress);
                    requestQueue.CreateIfNotExist();

                    CloudQueue responseQueue = queueClient.GetQueueReference(responseQueueAddress);
                    responseQueue.CreateIfNotExist();

                }
                catch (WebException)
                {
                    throw new WebException("Storage services initialization failure. "
                        + "Check your storage account configuration settings. If running locally, "
                        + "ensure that the Development Storage service is running.");
                }

                storageInitialized = true;
            }
        }
        private static void SetReadOnlySharedAccessPolicy(CloudBlobContainer container)
        {
            var blobSASExperiationTime = int.Parse(ConfigReader.GetConfigValue("BlobSASExperiationTime"), NumberStyles.Integer, CultureInfo.InvariantCulture);
            var permissions = container.GetPermissions();
            var options = new BlobRequestOptions
            {
                // Fail if someone else has already changed the container before we do.
                AccessCondition = AccessCondition.IfMatch(container.Properties.ETag)
            };
            var sharedAccessPolicy = new SharedAccessPolicy
            {
                Permissions = SharedAccessPermissions.Read,
                SharedAccessExpiryTime = DateTime.UtcNow + TimeSpan.FromDays(blobSASExperiationTime)
            };

            permissions.SharedAccessPolicies.Remove("readonly");
            permissions.SharedAccessPolicies.Add("readonly", sharedAccessPolicy);

            container.SetPermissions(permissions, options);
        }
        private static void SetReadOnlySharedAccessPolicy(CloudBlobContainer container)
        {
            var permissions = container.GetPermissions();
            var options = new BlobRequestOptions
            {
                // Fail if someone else has already changed the container before we do.
                AccessCondition = AccessCondition.IfMatch(container.Properties.ETag)
            };
            var sharedAccessPolicy = new SharedAccessPolicy
            {
                Permissions = SharedAccessPermissions.Read,
                SharedAccessExpiryTime = DateTime.UtcNow + TimeSpan.FromDays(StorageServicesContext.Current.Configuration.BlobsSasExpirationTime)
            };

            permissions.SharedAccessPolicies.Remove("readonly");
            permissions.SharedAccessPolicies.Add("readonly", sharedAccessPolicy);

            container.SetPermissions(permissions, options);
        }
Пример #10
0
        private void CheckContainer(string containerConfigName)
        {
            // Get a handle on account, create a blob service client and get container proxy
            storageAccount = CloudStorageAccount.FromConfigurationSetting("BlobConnectionString");
            blobStorageClient = storageAccount.CreateCloudBlobClient();
            containerName = RoleEnvironment.GetConfigurationSettingValue(containerConfigName);

            blobExcelContainer = blobStorageClient.GetContainerReference(containerName);
            blobExcelContainer.CreateIfNotExist();

            var permissions = blobExcelContainer.GetPermissions();
            permissions.PublicAccess = BlobContainerPublicAccessType.Container;
            blobExcelContainer.SetPermissions(permissions);
        }
Пример #11
0
        public override bool OnStart( )
        {
            DiagnosticMonitor.Start( "DiagnosticsConnectionString" );

            RoleEnvironment.Changing += new EventHandler<RoleEnvironmentChangingEventArgs>( RoleEnvironmentChanging );

            CloudStorageAccount.SetConfigurationSettingPublisher( ( configName, configSetter ) => configSetter( RoleEnvironment.GetConfigurationSettingValue( configName ) ) );
            CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting( "DataConnectionString" );

            container = storageAccount.CreateCloudBlobClient( ).GetContainerReference( "fotogolpics" );
            queue = storageAccount.CreateCloudQueueClient( ).GetQueueReference( "fotogolthumbs" );

            Trace.TraceInformation( "Creating container and queue..." );

            bool storageInitialized = false;
            while ( !storageInitialized )
            {
                try
                {
                    container.CreateIfNotExist( );
                    BlobContainerPermissions permissions = container.GetPermissions( );
                    permissions.PublicAccess = BlobContainerPublicAccessType.Container;
                    container.SetPermissions( permissions );

                    queue.CreateIfNotExist( );
                    storageInitialized = true;
                }
                catch ( StorageClientException e )
                {
                    if ( e.ErrorCode != StorageErrorCode.TransportError )
                        throw;

                    Trace.TraceError( "Storage services initialization failure. Check your storage account configuration settings. If running locally, ensure that the Development Storage service is running. Message: '{0}'", new object[] { e.Message } );
                    Thread.Sleep( 5000 );
                }
            }
            return base.OnStart( );
        }
Пример #12
0
 public Uri Save(bool test, Stream s, string blobName, string fileExtention, string fileContentType)
 {
     CloudStorageAccount storageAccount;
     if (test)
     {
         storageAccount = CloudStorageAccount.FromConfigurationSetting("BlobConnectionString");
     }
     else
     {
         storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("BlobConnectionString"));
     }
     //storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=vestnstorage;AccountKey=OCZoZBQegbepYCxWNoOLYLkSBg461Bo0cac2F6Q9hpOwiOykYZmgwb5EsGgJWUfPuC3kalOuNk1Dp0C0HXsRaQ==");
     blobClient = storageAccount.CreateCloudBlobClient();
     blobContainer = blobClient.GetContainerReference(blobName);
     blobContainer.CreateIfNotExist();
     var permissions = blobContainer.GetPermissions();
     permissions.PublicAccess = BlobContainerPublicAccessType.Container;
     blobContainer.SetPermissions(permissions);
     return AddBlob(fileExtention, fileContentType, s, blobName);
 }