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); }
/// <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); }
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); }
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); }
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); }