Exemplo n.º 1
0
        public async Task <AzureStoragePutResult> Put(String source, String container, String blob, Stream stream, Int64 len)
        {
            var config  = new AzureStorageConfig(source);
            var ari     = new AzureRequestInfo();
            var urlPath = Uri.EscapeDataString($"{container}/{blob}");
            var url     = config.GetUrl(urlPath);

            var wr = WebRequest.Create(url);

            wr.Method        = "PUT";
            wr.ContentLength = len;
            wr.Headers.Add("x-ms-blob-type", ari.BlobType);
            wr.Headers.Add("x-ms-date", ari.Date);
            wr.Headers.Add("x-ms-version", ari.StorageServiceVersion);
            wr.Headers.Add("Authorization", GetAuthHeader(config, "PUT", ari, urlPath, len.ToString()));
            using (var rs = await wr.GetRequestStreamAsync())
            {
                stream.CopyTo(rs);
            }
            using (var resp = await wr.GetResponseAsync())
            {
                return(new AzureStoragePutResult());
            }
        }
Exemplo n.º 2
0
        public async Task <Byte[]> Get(String source, String container, String blob)
        {
            var config = new AzureStorageConfig(source);
            var ari    = new AzureRequestInfo();

            var urlPath = Uri.EscapeDataString($"{container}/{blob}");
            var url     = config.GetUrl(urlPath);

            var wr = WebRequest.Create(url);

            wr.Method = "GET";
            wr.Headers.Add("x-ms-blob-type", ari.BlobType);
            wr.Headers.Add("x-ms-date", ari.Date);
            wr.Headers.Add("x-ms-version", ari.StorageServiceVersion);
            wr.Headers.Add("Authorization", GetAuthHeader(config, "GET", ari, urlPath, String.Empty));
            using (var resp = await wr.GetResponseAsync())
            {
                var ms = new MemoryStream();
                await resp.GetResponseStream().CopyToAsync(ms);

                ms.Seek(0, SeekOrigin.Begin);
                return(ms.GetBuffer());
            }
        }