Der angegebene container nicht vorhanden
Geblieben bin mit diesem Fehler The specified container does not exist.
lassen Sie mich erklären,
CloudBlobClient blobStorage = GetBlobStorage("upload");
CloudBlockBlob blob = BlobPropertySetting(blobStorage, Guid.NewGuid().ToString().ToLower() + Path.GetExtension(file.FileName));
blob.UploadFromStream(file.InputStream);
public static CloudBlobClient GetBlobStorage(string cloudBlobContainserName)
{
CloudBlobClient blobStorage;
try
{
var storageAccount = CloudStorageAccount.FromConfigurationSetting("StorageConnectionString");
blobStorage = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobStorage.GetContainerReference(cloudBlobContainserName);
container.CreateIfNotExist();
var permissions = container.GetPermissions();
permissions.PublicAccess = BlobContainerPublicAccessType.Container;
container.SetPermissions(permissions);
}
catch (Exception ex)
{
Logger.LogError(Log4NetLogger.Category.Exception, "Error in : BlobHandler.GetBlobStorage :>> Exception message: " + ex.Message);
throw;
}
return blobStorage;
}
public static CloudBlockBlob BlobPropertySetting(CloudBlobClient cloudBlobClientReferenceName, string blobContentName)
{
CloudBlockBlob blob = cloudBlobClientReferenceName.GetBlockBlobReference(blobContentName);
return blob;
}
und meine StorageConnectionString
ist
<Setting name="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=duw;AccountKey=bla bla" />
container 'upload' und der Speicher-Konto, 'duw' existieren.
Ausführung blob.UploadFromStream(file.InputStream);
- Anweisung, die den Fehler verursacht.
stack trace :
bei Microsoft.WindowsAzure.StorageClient.Aufgaben.Aufgabe
1.get_Result()
1.ExecuteAndWait()
at Microsoft.WindowsAzure.StorageClient.Tasks.Task
bei Microsoft.WindowsAzure.StorageClient.TaskImplHelper.ExecuteImpl(Func`1 impl)
bei Microsoft.WindowsAzure.StorageClient.CloudBlob.UploadFromStream(Stream source, BlobRequestOptions-Optionen)
bei Microsoft.WindowsAzure.StorageClient.CloudBlob.UploadFromStream(Stream source)
bei DAL.Handler.BlobHandler.CreateAd(HttpPostedFileBase-Datei, Anzeige Modell) in D:\DU Server\Stamm\Du Server\DAL\Handler\BlobHandler.cs:Zeile 151
innere Ausnahme:
{"The remote server returned an error: (404) Not Found."}
kann jeder Körper helfen, mich zu lösen.
- erste, was zu tun ist, um zu überprüfen, ob der container wird ordnungsgemäß erstellt mithilfe von azure-Speicher Zuschauer.wie cloudstorageexplorer. zweitens, sehen Sie, wenn Sie erste Referenz der blob richtig in BlobPropertySetting Methode?
- blobStorage.GetContainerReference("upload") gibt die folgende {Microsoft.WindowsAzure.StorageClient.CloudBlobContainer} Attributes: {Microsoft.WindowsAzure.StorageClient.BlobContainerAttributes} Metadaten: {System.Sammlungen.Spezialisierte.NameValueCollection} Name: "hochladen", Properties: {Microsoft.WindowsAzure.StorageClient.BlobContainerProperties} ServiceClient: {Microsoft.WindowsAzure.StorageClient.CloudBlobClient} Uri: {duw.blob.core.windows.net/upload}
- Ich bin mir nicht sicher, ich verstehe die ersten 3 Linien.. sind Sie Klasse vars oder sind Sie mit denen aus einem anderen Verfahren wird hier nicht gezeigt?
- Klasse vars.. alle Methoden, die ich verwendet, werden hier angezeigt..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurze version
Versuchen Sie den folgenden code für
BlobPropertySetting
Funktion:Jetzt für die längere version 🙂
Der Grund, warum man immer diese Fehlermeldung ist wegen der Art, Sie bauen die
CloudBlockBlob
Objekt inBlobPropertySetting
Methode. Wenn du deinen code, er erzeugt ein blob-Objekt mit der folgenden URI:https://duv.blob.core.windows.net/blobContentName
. Wenn Sie feststellen, es gibt keinen container namens gibt. Da es keine container-Namen, storage client-Bibliothek setzt Voraus, dass Sie versuchen, erstellen Sie ein blob in$root
blob-container, die eine spezielle blob-container. Sie können mehr darüber Lesen Sie hier: http://msdn.microsoft.com/en-us/library/windowsazure/hh488356.aspx. Seit Ihrer storage-Konto nicht über diesen container bekommen Sie404 - Resource Not Found
Fehler.CloudBlobContainer
von dieser Methode, anstelle vonCloudBlobClient
. Dann in IhreBlobPropertySetting
wenn Sie an dieser blob-container-Objekt, das Sie nicht haben, um voranstellen der name des Containers, inGetBlockBlobReference
. HTH.Ich bin sehr spät, aber immer noch dachte, wenn meine Antwort wäre für jeden nützlich.
Entschloss ich mich diesen Fehler, indem Sie die richtige "container-name". Es war anders standardmäßig.
Ich habe geklont, das GIT-Projekt : https://github.com/Azure-Samples/storage-blob-upload-from-webapp-node