Я столкнулся с ситуацией, когда я не могу выполнять определенные операции, такие как удаление blob внутри контейнера в моей учетной записи хранилища. Я просматривал эти форумы и пробовал различные потенциальные решения, такие как предоставление правильного разрешения или создание токена SAS. Мне не удалось заставить его работать, поэтому я также связался с Azure Support, но мне не удалось получить помощь, в которой я нуждался.Невозможно удалить, загрузить и загрузить blob в Azure Cloud Storage
Я работаю над веб-приложением .NET, которое, когда пользователь входит в систему, перечисляет свои сохраненные blob и дает им возможность загружать их файлы или загружать новые или даже удалять. Я могу получить и отобразить правильные капли без проблем. Когда я пытаюсь удалить или загрузить, я сталкиваюсь с этой проблемой: «Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступно».
Вот отрывок из моего кода
public static void init(string username){
// Retrieve storage account from connection string.
storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
container = blobClient.GetContainerReference(username);
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
BlobContainerPermissions permissions = new BlobContainerPermissions();
permissions.PublicAccess = BlobContainerPublicAccessType.Blob;
// The new shared access policy provides read/write access to the container for 24 hours.
permissions.SharedAccessPolicies.Add("mypolicy", new SharedAccessBlobPolicy(){
// To ensure SAS is valid immediately, don’t set the start time.
// This way, you can avoid failures caused by small clock differences.
SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24),
Permissions = SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Create | SharedAccessBlobPermissions.Add | SharedAccessBlobPermissions.Delete
});
// Set the new stored access policy on the container.
container.SetPermissions(permissions);
}//init
public static void deleteBlob(string name){
CloudBlockBlob blob = container.GetBlockBlobReference(name);
blob.Delete();
}//delete
Я убедился, что строковые значения представляют собой правильные контейнеры и сгустки.
Я также попытался вставить какой-то MIME в мой файл web.config
<staticContent>
<mimeMap fileExtension=".txt" mimeType="text/plain"/>
<mimeMap fileExtension=".jpg" mimeType="image/jpeg"/>
</staticContent>
Спасибо заранее.
EDIT: Вот как метод выглядит в моем контроллере
public ActionResult Delete(string name) {
StorageModel.deleteBlob(name);
return View(refreshList());
}//delete
А вот как это выглядит на моем cshtml
@Html.ActionLink("Delete", "Delete", new { id=item.name })
Просьба включить сегмент кода, в котором используются методы Azure blob. Исходя из этой ошибки, вы, вероятно, используете веб-Api, и маршрут не настроен должным образом. – Ankit
@Ankit Отредактировано и добавлено код, связанный с контроллером и cshtml-файлом. –
Можете ли вы попытаться получить URL-адрес blob в методе deleteBlob и посмотреть, пытаетесь ли вы удалить правильный blob. –