我在我的c#web应用程序中写入了一种从Azure存储帐户中删除旧blob的方法。 这是我的代码:c#以编程方式获取Azure存储帐户权限
public void CleanupIotHubExpiredBlobs()
{
const string StorageAccountName = "storageName";
const string StorageAccountKey = "XXXXXXXXXX";
const string StorageContainerName = "outputblob";
string storageConnectionString = string.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", StorageAccountName, StorageAccountKey);
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// select container in which to look for old blobs.
CloudBlobContainer container = blobClient.GetContainerReference(StorageContainerName);
// set up Blob access condition option which will filter all the blobs which are not modified for X (this.m_CleanupExpirationNumOfDays) amount of days
IEnumerable<IListBlobItem> blobs = container.ListBlobs("", true);
foreach (IListBlobItem blob in blobs)
{
CloudBlockBlob cloudBlob = blob as CloudBlockBlob;
Console.WriteLine(cloudBlob.Properties);
cloudBlob.DeleteIfExists(DeleteSnapshotsOption.None, AccessCondition.GenerateIfNotModifiedSinceCondition(DateTime.Now.AddDays(-1 * 0.04)), null, null);
}
LogMessageToFile("Remove old blobs from storage account");
}
,你可以看到,为了实现该方法具有接收StorageAccountName和StorageAccountKey参数。
一种方法是将这些参数配置到配置文件中供应用程序使用,但这意味着用户必须手动将这两个参数插入到配置文件中。
我的问题是: 有没有办法以编程方式检索我的代码中的这些参数中的至少一个,这样至少用户将不得不只插入一个参数而不是两个?我的目标是让用户的生活更轻松。
非常感谢您白兰度,这是真正有用的! –
如果您觉得我的回答有用/有帮助,请将其标记为答案,以便其他人可以从中受益。 –