private static void DoBucketCorsOperations() { CreateTemporarySignatureRequest request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.Method = HttpVerb.PUT; request.Expires = 3600; request.SubResource = SubResourceEnum.Cors; request.Headers.Add("Content-Type", "application/xml"); String requestXml = "<CORSConfiguration><CORSRule><AllowedMethod>GET</AllowedMethod><AllowedOrigin>*</AllowedOrigin><AllowedHeader>*</AllowedHeader></CORSRule></CORSConfiguration>"; request.Headers.Add("Content-MD5", Convert.ToBase64String(new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(requestXml)))); CreateTemporarySignatureResponse response = client.CreateTemporarySignature(request); Console.WriteLine("Setting bucket CORS using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); GetResponse(request.Method, response, requestXml); request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.Method = HttpVerb.GET; request.Expires = 3600; request.SubResource = SubResourceEnum.Cors; response = client.CreateTemporarySignature(request); Console.WriteLine("Getting bucket CORS using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); GetResponse(request.Method, response); }
private static void DoObjectAclOperations() { CreateTemporarySignatureRequest request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.ObjectKey = objectKey; request.Method = HttpVerb.PUT; request.Expires = 3600; request.SubResource = SubResourceEnum.Acl; request.Headers.Add("x-obs-acl", "public-read"); CreateTemporarySignatureResponse response = client.CreateTemporarySignature(request); Console.WriteLine("Setting object ACL to public-read using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); GetResponse(request.Method, response); request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.ObjectKey = objectKey; request.Method = HttpVerb.GET; request.Expires = 3600; request.SubResource = SubResourceEnum.Acl; response = client.CreateTemporarySignature(request); Console.WriteLine("Getting object ACL using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); GetResponse(request.Method, response); }
private static void DoDeleteBucket() { CreateTemporarySignatureRequest request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.Method = HttpVerb.DELETE; request.Expires = 3600; CreateTemporarySignatureResponse response = client.CreateTemporarySignature(request); Console.WriteLine("Deleting bucket using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); GetResponse(request.Method, response); }
private static void DoGetObject() { CreateTemporarySignatureRequest request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.ObjectKey = objectKey; request.Method = HttpVerb.GET; request.Expires = 3600; CreateTemporarySignatureResponse response = client.CreateTemporarySignature(request); Console.WriteLine("Getting object using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); GetResponse(request.Method, response); }
private static void DoCreateObject() { CreateTemporarySignatureRequest request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.ObjectKey = objectKey; request.Method = HttpVerb.PUT; request.Expires = 3600; request.Headers.Add("Content-Type", "text/plain"); CreateTemporarySignatureResponse response = client.CreateTemporarySignature(request); Console.WriteLine("Createing object using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); GetResponse(request.Method, response, "Hello OBS"); }
private static void DoCreateBucket() { CreateTemporarySignatureRequest request = new CreateTemporarySignatureRequest(); request.BucketName = bucketName; request.Method = HttpVerb.PUT; request.Expires = 3600; CreateTemporarySignatureResponse response = client.CreateTemporarySignature(request); Console.WriteLine("Creating bucket using temporary signature url:"); Console.WriteLine("\t" + response.SignUrl); string location = "your location"; String requestXml = "<CreateBucketConfiguration><Location>" + location + "</Location></CreateBucketConfiguration>"; GetResponse(request.Method, response); }
/// <summary> /// Generate parameters for a temporary authentication request. /// </summary> /// <param name="request">Request parameters</param> /// <returns>Response</returns> public CreateTemporarySignatureResponse CreateTemporarySignature(CreateTemporarySignatureRequest request) { HttpRequest httpRequest = new HttpRequest(); httpRequest.PathStyle = this.ObsConfig.PathStyle; httpRequest.BucketName = request.BucketName; httpRequest.ObjectKey = request.ObjectKey; httpRequest.Method = request.Method; IHeaders iheaders = this.httpClient.GetIHeaders(new HttpContext(this.sp, this.ObsConfig)); if (!string.IsNullOrEmpty(this.sp.Token) && !request.Parameters.ContainsKey(iheaders.SecurityTokenHeader())) { request.Parameters.Add(iheaders.SecurityTokenHeader(), this.sp.Token.Trim()); } foreach (KeyValuePair <string, string> entry in request.Headers) { CommonUtil.AddHeader(httpRequest, entry.Key, entry.Value); } foreach (KeyValuePair <string, string> entry in request.Parameters) { CommonUtil.AddParam(httpRequest, entry.Key, entry.Value); } if (request.SubResource.HasValue) { SubResourceEnum value = request.SubResource.Value; if (value == SubResourceEnum.StoragePolicy && this.ObsConfig.AuthType == AuthTypeEnum.OBS) { value = SubResourceEnum.StorageClass; } else if (value == SubResourceEnum.StorageClass && this.ObsConfig.AuthType != AuthTypeEnum.OBS) { value = SubResourceEnum.StoragePolicy; } CommonUtil.AddParam(httpRequest, EnumAdaptor.GetStringValue(value), null); } foreach (KeyValuePair <string, string> entry in request.Metadata.KeyValuePairs) { if (string.IsNullOrEmpty(entry.Key)) { continue; } string _key = entry.Key; if (!entry.Key.StartsWith(iheaders.HeaderMetaPrefix(), StringComparison.OrdinalIgnoreCase) && !entry.Key.StartsWith(Constants.ObsHeaderMetaPrefix, StringComparison.OrdinalIgnoreCase)) { _key = iheaders.HeaderMetaPrefix() + _key; } CommonUtil.AddHeader(httpRequest, _key, entry.Value); } long expires = 300; if (request.Expires.HasValue && request.Expires.Value > 0) { expires = request.Expires.Value; } return(this.ObsConfig.AuthType == AuthTypeEnum.V4 ? this.CreateV4TemporarySignature(httpRequest, expires, iheaders) : this.CreateTemporarySignature(httpRequest, expires, iheaders)); }