Exemple #1
0
        private IEnumerator PutBlobBytes(Action <RestResponse> callback, byte[] bytes, string resourcePath, string filename, string contentType)
        {
            int contentLength = bytes.Length;
            // TODO: check size is ok?
            Dictionary <string, string> headers = new Dictionary <string, string> ();

            string file = Path.GetFileName(filename);

            headers.Add("Content-Type", contentType);
            headers.Add("x-ms-blob-content-disposition", string.Format("attachment; filename=\"{0}\"", file));
            headers.Add("x-ms-blob-type", "BlockBlob");

            string filePath = resourcePath.Length > 0 ? resourcePath + "/" + file : file;

            StorageRequest request = Auth.CreateAuthorizedStorageRequest(client, Method.PUT, filePath, null, headers, contentLength);

            // add body
            request.AddBody(bytes, contentType);

            yield return(request.request.Send());

                        #if UNITY_EDITOR
            while (request.request.responseCode == -1L)
            {
            }
                        #endif

            request.Result(callback);
        }
        /// <summary>
        /// Factory method to generate an authorized request URL using query params. (valid up to 15 minutes)
        /// </summary>
        /// <returns>The authorized request.</returns>
        /// <param name="client">StorageServiceClient</param>
        /// <param name="httpMethod">Http method.</param>
        public static StorageRequest CreateAuthorizedStorageRequest(StorageServiceClient client, Method method, string resourcePath = "", Dictionary <string, string> queryParams = null, Dictionary <string, string> headers = null, int contentLength = 0)
        {
//			AuthorizationHeaders authHeaders = new AuthorizationHeaders (client, method, resourcePath, queryParams, headers, contentLength);
//			string stringToSign = authHeaders.ToString ();
            string baseUrl    = client.PrimaryEndpoint();
            string requestUrl = UrlHelper.BuildQuery(baseUrl, queryParams, resourcePath);

            StorageRequest request = new StorageRequest(requestUrl, method);

//			string signature = Sign (client.Key, stringToSign);
//			string authorization = Authorization (client.Account, signature);
//
//			Debug.Log ("Auth request url:" + requestUrl + "\n\nauthorization: \"" + authorization + "\"\nx-ms-date: " + authHeaders.MSDate () + "\nstringToSign:'" + stringToSign + "'");
//
//			request.AddHeader ("Authorization", authorization);
//			request.AddHeader ("x-ms-date", authHeaders.MSDate ());
//			request.AddHeader ("x-ms-version", authHeaders.MSVersion ());
//
//			if (headers != null) {
//				request.AddHeaders (headers);
//			}

            request.AuthorizeRequest(client, method, resourcePath, queryParams, headers, contentLength);

            return(request);
        }
Exemple #3
0
        /// <summary>
        /// Factory method to generate an authorized request URL using query params. (valid up to 15 minutes)
        /// </summary>
        /// <returns>The authorized request.</returns>
        /// <param name="client">StorageServiceClient</param>
        /// <param name="httpMethod">Http method.</param>
        public static StorageRequest CreateAuthorizedStorageRequest(StorageServiceClient client, Method method, string resourcePath = "", Dictionary <string, string> queryParams = null, Dictionary <string, string> headers = null, int contentLength = 0)
        {
            string         baseUrl    = client.PrimaryEndpoint();
            string         requestUrl = UrlHelper.BuildQuery(baseUrl, queryParams, resourcePath);
            StorageRequest request    = new StorageRequest(requestUrl, method);

            request.AuthorizeRequest(client, method, resourcePath, queryParams, headers, contentLength);
            return(request);
        }
Exemple #4
0
        public IEnumerator DeleteBlob(Action <RestResponse> callback, string resourcePath, string filename)
        {
            string         filePath = resourcePath.Length > 0 ? resourcePath + "/" + filename : filename;
            StorageRequest request  = Auth.CreateAuthorizedStorageRequest(client, Method.DELETE, filePath);

            yield return(request.request.Send());

            request.Result(callback);
        }
Exemple #5
0
        public IEnumerator GetTextBlob(Action <RestResponse> callback, string resourcePath = "")
        {
            // public request
            string         url     = UrlHelper.BuildQuery(client.SecondaryEndpoint(), "", resourcePath);
            StorageRequest request = new StorageRequest(url, Method.GET);

            yield return(request.request.Send());

            request.Result(callback);
        }
Exemple #6
0
        public IEnumerator ListBlobs(Action <IRestResponse <BlobResults> > callback, string resourcePath = "")
        {
            Dictionary <string, string> queryParams = new Dictionary <string, string> ();

            queryParams.Add("comp", "list");
            queryParams.Add("restype", ResType.container.ToString());

            StorageRequest request = Auth.CreateAuthorizedStorageRequest(client, Method.GET, resourcePath, queryParams);

            yield return(request.request.Send());

            request.ParseXML <BlobResults> (callback);
        }