Search code examples
c#azurewindows-8azure-storage

Azure Storage Blob Rest Api Headers


I can't upload image to my azure storage by REST API. This is my code:

        using (var client = new HttpClient())
        {
            using (var fileStream = await _eventPhoto.OpenStreamForReadAsync())
            {
                var content = new StreamContent(fileStream);
                content.Headers.Add("Content-Type", _eventPhoto.ContentType);
                content.Headers.Add("x-ms-blob-type", "BlockBlob");

                var uploadResponse = await client.PutAsync(new Uri("https://myservice.blob.core.windows.net/photos/newblob"),content);
                int x = 2;
            }
        }

I get error about missing paramerer. Probably Authorization.

1) How to add missing headers?

2) Someone have working sample?

3) How to add Authorization?


Solution

  • Do you have a reason not to be using the client library that does this for you already? If you have a reason and you really want to use HttpClient, then you need to either a.) implement signing per spec, or b.) use a Shared Access Signature in your URI.