我在我的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參數。
一種方法是將這些參數配置到配置文件中供應用程序使用,但這意味着用戶必須手動將這兩個參數插入到配置文件中。
我的問題是: 有沒有辦法以編程方式檢索我的代碼中的這些參數中的至少一個,這樣至少用戶將不得不只插入一個參數而不是兩個?我的目標是讓用戶的生活更輕鬆。
非常感謝您白蘭度,這是真正有用的! –
如果您覺得我的回答有用/有幫助,請將其標記爲答案,以便其他人可以從中受益。 –