Azure Blob 400 Bad request on Creation of container

后端 未结 12 2465
夕颜
夕颜 2020-12-15 16:26

I\'m developing an ASP.Net MVC 4 app and I\'m using Azure Blob to store the images that my users are going to upload. I have the following code:

 var storag         


        
相关标签:
12条回答
  • 2020-12-15 16:36

    Make sure your versions of the storage libraries and storage emulator aren't "out of sync". I updated my libraries but didn't update the emulator to the latest version and got this exact situation.

    0 讨论(0)
  • 2020-12-15 16:36

    The simple solution to this problem is, container should always be in lower case. I had the same issue, which got resolved after changing container name to all in lower case.

    0 讨论(0)
  • 2020-12-15 16:44

    it's necessary view the httpstatusmessage in exception: in my case the error was because The requested URI does not represent any resource on the server.

    so i've seen that my BlobContainerName not contains the right container (or not exists)

    CloudBlobContainer container = > blobClient.GetContainerReference(BlobContainerName);
    

    other case i've seen is the wrong name of container. blobcontainername that must be a name like "mycontainer1" or "mycontainer2" and so on

    here the code to add container

    try
            {
                CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
    
                // Create the blob client.
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
    
                // Retrieve reference to a previously created container.
                CloudBlobContainer container = blobClient.GetContainerReference(BlobContainerName);
    
                container.CreateIfNotExists();
    
               //creo se non esiste e aggiungo i permessi
                BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
                containerPermissions.PublicAccess = BlobContainerPublicAccessType.Blob;
                container.SetPermissions(containerPermissions);
    
                // Retrieve reference to a blob named "myblob".
                CloudBlockBlob blockBlob = container.GetBlockBlobReference(Filename); 
    
                blockBlob.UploadFromStream(inFileUpload);
            }
            catch (Exception ex)
            {
                return "";
            }
    
    0 讨论(0)
  • 2020-12-15 16:46

    I actually ended up finding the problem.

    My problem was that the blob storage emulator would not start (the other emulators would start and I missed the blob). The problem ended up being that the port 10000 (default blob emulator port) was already being used by another software. I used Netstat cmd tool to see which software it was, killed it and its now working like a charm!!! Thanks everyone!!

    0 讨论(0)
  • 2020-12-15 16:46

    If you have just updated the WindowsAzure.Storage nuget package and your app started crashing with http error 400 bad request :

    In my case it happened when I updated to 8.2.1 and my local emulator was version 5.1.

    My solution is this :

    1. Go to Microsoft Azure SDK page here.
    2. Search for "Azure Storage Emulator" and download the latest storage emulator. Usually at the middle of the page to the left in "Command-line tools" section
    3. Install the latest emulator
    4. You are good to go.

    When I downloaded Storage Emulator 5.2 and upgraded from 5.1 the errors stopped. Such an error happened several times to me already.

    My humble request if anybody from Microsoft Azure Storage Emulator team reads this - Please add a check for development mode and throw a meaningful exception with the message like - "You have Azure Storage Emulator version X.Y.Z installed. In order to use the current WindowsAzure.Storage library **V.V.V with Azure Emulator you need to install version Z.Z.Z of the emulator from this link".** or whatever you consider useful.

    This kind of problem have wasted several hours of my time and I suppose the same happened to thousands of developers around the world and still this exception sits there - for more than 4 years!

    0 讨论(0)
  • 2020-12-15 16:51

    I just had this issue and fixed it.

    My container name was fine, but I accidentally had the AccountName parameter in my connection string capitalized. This led to my 400.

    0 讨论(0)
提交回复
热议问题