本文整理汇总了C#中Microsoft.WindowsAzure.StorageClient.CloudBlobContainer类的典型用法代码示例。如果您正苦于以下问题:C# CloudBlobContainer类的具体用法?C# CloudBlobContainer怎么用?C# CloudBlobContainer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CloudBlobContainer类属于Microsoft.WindowsAzure.StorageClient命名空间,在下文中一共展示了CloudBlobContainer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MonitorCopy
/// <summary>
/// Taken from: http://blogs.msdn.com/b/windowsazurestorage/archive/2012/06/12/introducing-asynchronous-cross-account-copy-blob.aspx
/// </summary>
/// <param name="destContainer">The container to monitor</param>
public static void MonitorCopy(CloudBlobContainer destContainer)
{
var pendingCopy = true;
while (pendingCopy)
{
var destBlobList = destContainer.ListBlobs(true, BlobListingDetails.Copy);
foreach (var destBlob in destBlobList.Select(dest => dest as CloudBlob))
{
if (destBlob.CopyState == null)
{
Debug.WriteLine("BlobStorage.MonitorCopy: CopyState is null. Small sleep, then we assume it's done!");
Thread.Sleep(5000);
return;
}
switch (destBlob.CopyState.Status)
{
case CopyStatus.Failed:
case CopyStatus.Aborted:
Debug.WriteLine("BlobStorage.MonitorCopy: Copy Failed or Aborted; restarting copy");
destBlob.StartCopyFromBlob(destBlob.CopyState.Source);
break;
case CopyStatus.Success:
pendingCopy = false;
break;
}
}
Thread.Sleep(1000);
}
}
示例2: Sync
static void Sync(CloudBlobContainer container, string rootPath)
{
// iterate all files from storage
foreach (CloudBlob item in container.ListBlobs(new BlobRequestOptions() { UseFlatBlobListing = true })) {
try {
var localPath = Path.Combine(rootPath, item.Name);
if (File.Exists(localPath) && File.GetLastWriteTimeUtc(localPath).ToFileTime() > item.Properties.LastModifiedUtc.ToFileTime())
continue; // local file is more recent
if (!Directory.Exists(Path.GetDirectoryName(localPath)))
Directory.CreateDirectory(Path.GetDirectoryName(localPath));
for (var i = 0; i < RETRY_COUNT; i++) {
try {
using (var fs = File.Open(localPath, FileMode.Create)) {
item.DownloadToStream(fs);
break; // all OK
}
} catch (IOException) {
// retry again later
System.Threading.Thread.Sleep(SLEEPMS_ONFAIL);
}
//catch (UnauthorizedAccessException) {
// // ??? just catch this silently otherwise IIS will crash
//}
}
} catch (Exception ex) {
NLog.LogManager.GetLogger("optQuick").Error(string.Format("Unable to process path {0} => {1}", rootPath, item.Name));
NLog.LogManager.GetLogger("optQuick").Error(ex);
throw;
}
}
}
示例3: CreateIfNotExist
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: StatelessAzureQueueWriter
public StatelessAzureQueueWriter(IEnvelopeStreamer streamer, CloudBlobContainer container, CloudQueue queue, string name)
{
_streamer = streamer;
_cloudBlob = container;
_queue = queue;
Name = name;
}
示例5: Sync
public void Sync(string localPath, CloudBlobContainer blobContainer, IEnumerable<string> directoriesToExclude)
{
this._localPath = localPath;
this._container = blobContainer;
this._directoriesToExclude = directoriesToExclude;
if (Monitor.TryEnter(this._syncLock)) // avoid concurrent updates from starting on this instance
{
try
{
HashSet<string> umbracoSettings = new HashSet<string>();
HashSet<string> seen = new HashSet<string>();
HashSet<string> newCerts = new HashSet<string>();
this.SyncLocalToBlob(seen, umbracoSettings);
//Time to check on blob storge for updates to sync
seen = new HashSet<string>();
this.SyncBlobToLocal(seen, newCerts);
this.UpdateInstanceHostsFile();
this.UpdateUmbracoSettings(umbracoSettings);
this.UpdateSites(newCerts);
} //end sync try {} block
finally { Monitor.Exit(this._syncLock); }
}
else
{
//skip sync
}
}
示例6: UploadBlob
private static void UploadBlob(CloudBlobContainer container, string blobName, string filename)
{
CloudBlob blob = container.GetBlobReference(blobName);
using (FileStream fileStream = File.OpenRead(filename))
blob.UploadFromStream(fileStream);
}
示例7: AzureBlobRepository
public AzureBlobRepository(CloudStorageAccount storageAccount, CloudBlobClient blobClient, CloudBlobContainer blobContainer)
{
this._storageAccount = storageAccount;
this._blobClient = blobClient;
this._blobContainer = blobContainer;
_blobContainer.SetPermissions(GetPermissions());
}
示例8: AzureDataCache
///<summary>Creates an AzureDataCache service.</summary>
///<param name="container">The CloudBlobContainer to read data from.</param>
///<param name="destination">The path to save the data. (on the local disk)</param>
public AzureDataCache(CloudBlobContainer container, string destination)
{
if (container == null) throw new ArgumentNullException("container");
if (destination == null) throw new ArgumentNullException("destination");
this.container = container;
LocalPath = destination;
}
示例9: OnStart
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();
}
示例10: MyClassInitialize
public static void MyClassInitialize(TestContext testContext)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(DevConnectionString);
blobClient = storageAccount.CreateCloudBlobClient();
container = blobClient.GetContainerReference(TestContainerName);
container.CreateIfNotExist();
}
示例11: Storage
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);
}
示例12: OnStart
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();
}
示例13: OnStart
public override bool OnStart()
{
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;
#if DEBUG
account = CloudStorageAccount.DevelopmentStorageAccount;
#else
account = new CloudStorageAccount(accountAndKey, true);
#endif
tableContext = new TableServiceContext(account.TableEndpoint.ToString(), account.Credentials);
//client = new CloudQueueClient(account.BlobEndpoint.ToString(), account.Credentials);
qclient = account.CreateCloudQueueClient();
q = qclient.GetQueueReference("icd9mapplotrequests");
rows = new List<ICD9MapPlotResultEntry>();
bclient = account.CreateCloudBlobClient();
container = bclient.GetContainerReference("results");
container.CreateIfNotExist();
client = account.CreateCloudTableClient();
client.CreateTableIfNotExist("ICD9MapPlotResult");
client.CreateTableIfNotExist("DoctorDetails");
client.CreateTableIfNotExist("PatientDetails");
// For information on handling configuration changes
// see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
return base.OnStart();
}
示例14: OnStart
public override bool OnStart()
{
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;
// read storage account configuration settings
CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
{
configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
});
var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
// initialize blob storage
var blobStorage = storageAccount.CreateCloudBlobClient();
blobContainer = blobStorage.GetContainerReference("guestbookpics");
// initialize queue storage
var queueStorage = storageAccount.CreateCloudQueueClient();
queue = queueStorage.GetQueueReference("guestbookthumbs");
Trace.TraceInformation("Creating container and queue...");
bool storageInitialized = false;
while (!storageInitialized)
{
try
{
// create the blob container and allow public access
this.blobContainer.CreateIfNotExist();
var permissions = this.blobContainer.GetPermissions();
permissions.PublicAccess = BlobContainerPublicAccessType.Container;
this.blobContainer.SetPermissions(permissions);
// create the message queue(s)
this.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);
System.Threading.Thread.Sleep(5000);
}
else
{
throw;
}
}
}
return base.OnStart();
}
示例15: AzureStorageClient
public AzureStorageClient(CloudStorageAccount account)
{
client = account.CreateCloudBlobClient();
client.DefaultDelimiter = "/";
container = client.GetContainerReference("documents");
container.CreateIfNotExist();
}