public Task <bool> BucketExistsAsync(string bucketName) { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } bucketName = ConvertBucketName(bucketName); HeadBucketRequest request = new HeadBucketRequest(bucketName); try { HeadBucketResult result = _client.HeadBucket(request); return(Task.FromResult(true)); } catch (COSXML.CosException.CosClientException ex) { throw new Exception($"Rquest client error, {ex.Message}", ex); } catch (COSXML.CosException.CosServerException ex) { if (ex.statusCode == 403) { return(Task.FromResult(true)); } else if (ex.statusCode == 404) { return(Task.FromResult(false)); } else { throw new Exception($"Server error, {ex.Message}", ex); } } }
public static void AsynHeadBucket(COSXML.CosXml cosXml, string bucket) { HeadBucketRequest request = new HeadBucketRequest(bucket); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); ///执行请求 cosXml.HeadBucket(request, delegate(CosResult cosResult) { HeadBucketResult result = cosResult as HeadBucketResult; Console.WriteLine(result.GetResultInfo()); }, delegate(CosClientException clientEx, CosServerException serverEx) { if (clientEx != null) { QLog.D("XIAO", clientEx.Message); Console.WriteLine("CosClientException: " + clientEx.StackTrace); } if (serverEx != null) { QLog.D("XIAO", serverEx.Message); Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } }); }
protected override void ProcessRecord() { base.ProcessRecord(); HeadBucketRequest request; try { request = new HeadBucketRequest { NamespaceName = NamespaceName, BucketName = BucketName, IfMatch = IfMatch, IfNoneMatch = IfNoneMatch, OpcClientRequestId = OpcClientRequestId }; response = client.HeadBucket(request).GetAwaiter().GetResult(); WriteOutput(response); FinishProcessing(response); } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }
/// <summary> /// 检索存储桶是否存在且是否有权限访问 /// </summary> /// <param name="bucketName">存储桶,格式:BucketName-APPID</param> public static CosResultInfoResponseDto CheckBucket(string bucketName = CosConfig.DEFAULT_BUCKET) { var cosXml = InitializeCosConfig(); var response = new CosResultInfoResponseDto(); try { string bucket = $"{bucketName}-{AppId}"; //格式:BucketName-APPID HeadBucketRequest request = new HeadBucketRequest(bucket); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //执行请求 HeadBucketResult result = cosXml.HeadBucket(request); //请求成功 response.statusCode = result.httpCode; response.statusMessage = result.httpMessage; return(response); } catch (COSXML.CosException.CosClientException clientEx) { //请求失败 response.statusCode = clientEx.errorCode; response.statusMessage = clientEx.Message; response.info = clientEx.ToJson(); return(response); } catch (COSXML.CosException.CosServerException serverEx) { //请求失败 response.statusCode = serverEx.statusCode; response.statusMessage = serverEx.statusMessage; response.info = serverEx.GetInfo(); return(response); } }
public void Test() { var json = JsonConvert.SerializeObject(_cosOptions); try { cosXml = GetCosXml(); string bucket = _cosOptions.Bucket; HeadBucketRequest request = new HeadBucketRequest(bucket); request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); HeadBucketResult result = cosXml.HeadBucket(request); Logging.Log.WriteInformationMessage(LOGTAG, "Test", "Request complete {0}: {1}, {2}", result.httpCode, json, result.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { Logging.Log.WriteErrorMessage(LOGTAG, "Test", clientEx, "Request failed: {0}", json); throw; } catch (COSXML.CosException.CosServerException serverEx) { Logging.Log.WriteErrorMessage(LOGTAG, "Test", serverEx, "Request failed: {0}, {1}", json, serverEx.GetInfo()); throw; } }
/// 获取存储桶信息 public void HeadBucket() { //.cssg-snippet-body-start:[head-bucket] try { string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID HeadBucketRequest request = new HeadBucketRequest(bucket); //执行请求 HeadBucketResult result = cosXml.HeadBucket(request); //请求成功 Console.WriteLine(result.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { //请求失败 Console.WriteLine("CosClientException: " + clientEx); } catch (COSXML.CosException.CosServerException serverEx) { //请求失败 Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } //.cssg-snippet-body-end }
private void CreateObsClient() { try { //初始化配置参数 ObsConfig config = new ObsConfig(); config.Endpoint = _endpoint; config.AuthType = AuthTypeEnum.OBS; // 创建ObsClient实例 _obsClient = new ObsClient(_accessKey, _secretKey, config); // 使用访问OBS HeadBucketRequest request = new HeadBucketRequest { BucketName = _bucketName, }; _obsClient.HeadBucket(request); //if (_obsClient.HeadBucket(request) == false) //{ // CreateBucketRequest requestCreate = new CreateBucketRequest(); // requestCreate.BucketName = _bucketName; // _obsClient.CreateBucket(requestCreate); //} } catch (ObsException ex) { throw new Exception("上传Obs错误:" + ex.ErrorCode + ":" + ex.Message); } }
public Task <HeadBucketResponse> HeadBucketAsync(string bucketName, Action <HeadBucketRequest>?config = null, CancellationToken token = default) { HeadBucketRequest request = new HeadBucketRequest(bucketName); config?.Invoke(request); return(BucketOperations.HeadBucketAsync(request, token)); }
/// <summary> /// バケットヘッダを取得する /// </summary> /// <param name="nameSpaceName"></param> /// <param name="bucketName"></param> /// <param name="regionName"></param> /// <returns></returns> public HeadBucketResponse GetBucketHead(string nameSpaceName, string bucketName, string regionName) { ObjectStorageClient.SetRegion(regionName); HeadBucketRequest headObjectRequest = new HeadBucketRequest { NamespaceName = nameSpaceName, BucketName = bucketName, }; return(ObjectStorageClient.HeadBucket(headObjectRequest)); }
public void TestHeadBucket() { OssClient ossClient = GetOssClient(); HeadBucketRequest request = new HeadBucketRequest(); request.RegionId = "cn-north-1"; request.Bucketname = "BIBO"; var result = ossClient.HeadBucket(request).Result; _output.WriteLine(JsonConvert.SerializeObject(result)); }
/// <summary> /// 判断桶是否存在 /// </summary> /// <param name="bucketName"></param> /// <returns></returns> public Task <bool> BucketExistsAsync(string bucketName) { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } HeadBucketRequest request = new HeadBucketRequest { BucketName = bucketName, }; bool exists = _client.HeadBucket(request); return(Task.FromResult(exists)); }
/// <summary> /// 查询桶是否存在,返回的结果中HTTP状态码为200表明桶存在,否则返回404表明桶不存在。 /// </summary> /// <param name="request">查询桶是否存在的请求参数。</param> /// /// <returns>查询桶是否存在的响应结果。</returns> /// public bool HeadBucket(HeadBucketRequest request) { try { this.DoRequest <HeadBucketRequest, ObsWebServiceResponse>(request); return(true); }catch (ObsException e) { if (e.StatusCode == HttpStatusCode.NotFound) { return(false); } throw e; } }
static void HeadBucket() { try { HeadBucketRequest request = new HeadBucketRequest() { BucketName = bucketName }; bool response = client.HeadBucket(request); Console.WriteLine("Head bucket response: {0}", response); } catch (ObsException ex) { Console.WriteLine("Exception errorcode: {0}, when head bucket.", ex.ErrorCode); Console.WriteLine("Exception errormessage: {0}", ex.ErrorMessage); } }
public void headBucket() { //.cssg-snippet-body-start:[head-bucket] CosXmlConfig config = new CosXmlConfig.Builder() .SetConnectionTimeoutMs(60000) //设置连接超时时间,单位毫秒,默认45000ms .SetReadWriteTimeoutMs(40000) //设置读写超时时间,单位毫秒,默认45000ms .IsHttps(true) //设置默认 HTTPS 请求 .SetAppid("1253653367") //设置腾讯云账户的账户标识 APPID .SetRegion("ap-guangzhou") //设置一个默认的存储桶地域 .Build(); string secretId = Environment.GetEnvironmentVariable("COS_KEY"); //云 API 密钥 SecretId string secretKey = Environment.GetEnvironmentVariable("COS_SECRET"); //云 API 密钥 SecretKey long durationSecond = 600; //每次请求签名有效时长,单位为秒 QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, secretKey, durationSecond); CosXml cosXml = new CosXmlServer(config, qCloudCredentialProvider); try { string bucket = "bucket-cssg-test-dotnet-1253653367"; //格式:BucketName-APPID HeadBucketRequest request = new HeadBucketRequest(bucket); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //执行请求 HeadBucketResult result = cosXml.HeadBucket(request); //请求成功 Console.WriteLine(result.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { //请求失败 Console.WriteLine("CosClientException: " + clientEx); Assert.Null(clientEx); } catch (COSXML.CosException.CosServerException serverEx) { //请求失败 Console.WriteLine("CosServerException: " + serverEx.GetInfo()); Assert.Null(serverEx); } //.cssg-snippet-body-end }
public void HeadBucket() { try { HeadBucketRequest request = new HeadBucketRequest(bucket); //执行请求 HeadBucketResult result = cosXml.HeadBucket(request); Assert.AreEqual(result.httpCode, 200); } catch (COSXML.CosException.CosClientException clientEx) { Console.WriteLine("CosClientException: " + clientEx.Message); Assert.Fail(); } catch (COSXML.CosException.CosServerException serverEx) { Console.WriteLine("CosServerException: " + serverEx.GetInfo()); Assert.Fail(); } }
public static void HeadBucket(COSXML.CosXml cosXml, string bucket) { try { HeadBucketRequest request = new HeadBucketRequest(bucket); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //执行请求 HeadBucketResult result = cosXml.HeadBucket(request); Console.WriteLine(result.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { QLog.D("XIAO", clientEx.Message); Console.WriteLine("CosClientException: " + clientEx.Message); } catch (COSXML.CosException.CosServerException serverEx) { QLog.D("XIAO", serverEx.Message); Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } }
/// <summary> /// Efficiently checks to see if a bucket exists and gets the current entity tag (ETag) for the bucket. /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <HeadBucketResponse> HeadBucket(HeadBucketRequest request) { var uri = new Uri($"{GetEndPointNoneVersion(ObjectStorageServices.Bucket(request.NamespaceName, request.BucketName), this.Region)}"); var httpRequestHeaderParam = new HttpRequestHeaderParam() { IfMatch = request.IfMatch, IfNoneMatch = request.IfNoneMatch, OpcClientRequestId = request.OpcClientRequestId }; var webResponse = await this.RestClientAsync.Head(uri, httpRequestHeaderParam); using (var stream = webResponse.GetResponseStream()) using (var reader = new StreamReader(stream)) { return(new HeadBucketResponse() { ETag = webResponse.Headers.Get("ETag"), OpcRequestId = webResponse.Headers.Get("opc-request-id"), OpcClientRequestId = webResponse.Headers.Get("opc-client-request-id") }); } }
public void HeadBucket(HeadBucketRequest request, Callback.OnSuccessCallback <CosResult> successCallback, Callback.OnFailedCallback failCallback) { Schedue(request, new HeadBucketResult(), successCallback, failCallback); }
public HeadBucketResult HeadBucket(HeadBucketRequest request) { return((Model.Bucket.HeadBucketResult)Excute(request, new Model.Bucket.HeadBucketResult())); }
/// <summary> /// 查询bucket是否存在 /// /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public async Task <HeadBucketResponse> HeadBucket(HeadBucketRequest request) { return(await new HeadBucketExecutor().Client(this).Execute <HeadBucketResponse, HeadBucketResult, HeadBucketRequest>(request).ConfigureAwait(false)); }
public HeadBucketResponse HeadBucket(HeadBucketRequest request) { return(new HeadBucketResponseParser().Parse(request, _netLayer.Invoke(request))); }
public static void DisplayObjectStorage(ClientConfig config) { var client = new ObjectStorageClient(config) { Region = Regions.US_ASHBURN_1 }; // get namespace GetNamespaceRequest getNamespaceRequest = new GetNamespaceRequest(); var namespaceName = client.GetNamespace(getNamespaceRequest); // get namespace metadata GetNamespaceMetadataRequest getNamespaceMetadataRequest = new GetNamespaceMetadataRequest() { NamespaceName = namespaceName }; var namespaceMetadata = client.GetNamespaceMetadata(getNamespaceMetadataRequest).NamespaceMetadata; Console.WriteLine("* Namespace------------------------"); Console.WriteLine($" namespace : {namespaceMetadata.Namespace}"); Console.WriteLine($" defaultS3CompartmentId : {namespaceMetadata.DefaultS3CompartmentId}"); Console.WriteLine($" defaultSwiftCompartmentId : {namespaceMetadata.DefaultSwiftCompartmentId}"); // list bucket ListBucketsRequest listBucketsRequest = new ListBucketsRequest() { NamespaceName = namespaceName, CompartmentId = config.TenancyId }; var listBucket = client.ListBuckets(listBucketsRequest); Console.WriteLine($"* Bucket------------------------"); Console.WriteLine($" namespace : {namespaceName}"); Console.WriteLine($" comaprtment : {config.TenancyId}"); listBucket.Items.ForEach(bucket => { HeadBucketRequest headBucketRequest = new HeadBucketRequest() { NamespaceName = bucket.Namespace, BucketName = bucket.Name }; var buckethead = client.HeadBucket(headBucketRequest); // get bucket details GetBucketRequest getBucketRequest = new GetBucketRequest() { NamespaceName = bucket.Namespace, BucketName = bucket.Name, IfMatch = buckethead.ETag }; var bucketDetail = client.GetBucket(getBucketRequest); Console.WriteLine($"\t|- name : {bucketDetail.Bucket.Name}"); Console.WriteLine($"\t| timeCreated : {bucketDetail.Bucket.TimeCreated}"); Console.WriteLine($"\t|* Object------------------------"); ListObjectsRequest listObjectsRequest = new ListObjectsRequest() { NamespaceName = bucketDetail.Bucket.Namespace, BucketName = bucketDetail.Bucket.Name }; var Objs = client.ListObjects(listObjectsRequest); Objs.ListObjects.Objects.ForEach(obj => { Console.WriteLine($"\t|\t|- name : {obj.Name}"); GetObjectRequest getObjectRequest = new GetObjectRequest() { NamespaceName = bucketDetail.Bucket.Namespace, BucketName = bucketDetail.Bucket.Name, ObjectName = obj.Name, }; var ObjDetails = client.GetObject(getObjectRequest); Console.WriteLine($"\t|\t|- contentLength : {ObjDetails.ContentLength}"); // download if (!Directory.Exists("./ExampleDownload")) { Directory.CreateDirectory("./ExampleDownload"); } if (!File.Exists($"./ExampleDownload/{obj.Name.Replace('/', '_')}")) { client.DownloadObject(getObjectRequest, "./ExampleDownload/", obj.Name.Replace('/', '_')); } }); }); // UsageReport // Example policy: // define tenancy usage-report as ocid1.tenancy.oc1..aaaaaaaaned4fkpkisbwjlr56u7cj63lf3wffbilvqknstgtvzub7vhqkggq // endorse group group_name to read objects in tenancy usage-report try { var listORequest = new ListObjectsRequest() { NamespaceName = "bling", BucketName = config.TenancyId }; var reports = client.ListObjects(listORequest); Console.WriteLine($"* UsageReport------------------------"); reports.ListObjects.Objects.ForEach(r => { Console.WriteLine($" {r.Name}"); if (!Directory.Exists("./ExampleDownload/report")) { Directory.CreateDirectory("./ExampleDownload/report"); } // download object /* * if (!File.Exists($"./ExampleDownload/report/{r.Name.Replace('/', '_')}")) * { * var getObjectRequest = new GetObjectRequest() * { * NamespaceName = "bling", * BucketName = config.TenancyId, * ObjectName = r.Name, * }; * client.DownloadObject(getObjectRequest, "./ExampleDownload/report/", r.Name.Replace('/', '_')); * }*/ }); } catch (Exception e) { Console.WriteLine($"Does not meet UsageReport usage requirements. message:{e.Message}"); } }
public static void DisplayBucketAndObject(ClientConfig config, string namespaceName, ObjectStorageClient client, IdentityClient identityClient) { // Compartment required only to get a bucket var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; // root(tenant) add compartments.Add(new OCISDK.Core.Identity.Model.Compartment { Id = config.TenancyId, Name = "root" }); foreach (var compartment in compartments) { Console.WriteLine($"## Compartment<{compartment.Name}>--------"); // list bucket ListBucketsRequest listBucketsRequest = new ListBucketsRequest() { NamespaceName = namespaceName, CompartmentId = compartment.Id }; var listBucket = client.ListBuckets(listBucketsRequest); Console.WriteLine($"* Bucket------------------------"); Console.WriteLine($" namespace : {namespaceName}"); Console.WriteLine($" comaprtment : {config.TenancyId}"); listBucket.Items.ForEach(bucket => { HeadBucketRequest headBucketRequest = new HeadBucketRequest() { NamespaceName = bucket.Namespace, BucketName = bucket.Name }; var buckethead = client.HeadBucket(headBucketRequest); // get bucket details GetBucketRequest getBucketRequest = new GetBucketRequest() { NamespaceName = bucket.Namespace, BucketName = bucket.Name, IfMatch = buckethead.ETag }; var bucketDetail = client.GetBucket(getBucketRequest); Console.WriteLine($"\t|- * name : {bucketDetail.Bucket.Name}"); Console.WriteLine($"\t| timeCreated : {bucketDetail.Bucket.TimeCreated}"); // Bucket workrequests ListWorkRequestsRequest listWorkRequestsRequest = new ListWorkRequestsRequest { CompartmentId = bucketDetail.Bucket.CompartmentId, BucketName = bucket.Name }; var wrs = client.ListWorkRequests(listWorkRequestsRequest); Console.WriteLine($"\t|* WorkRequest------------------------"); foreach (var wr in wrs.Items) { Console.WriteLine($"\t|\t|- name : {wr.OperationType}"); Console.WriteLine($"\t|\t|- status : {wr.Status}"); Console.WriteLine($"\t|\t|- start : {wr.TimeStarted}"); Console.WriteLine($"\t|\t|- finish : {wr.TimeFinished}"); } // objects Console.WriteLine($"\t|* Object------------------------"); ListObjectsRequest listObjectsRequest = new ListObjectsRequest() { NamespaceName = bucketDetail.Bucket.Namespace, BucketName = bucketDetail.Bucket.Name, Fields = new List <string> { "size", "timeCreated", "md5" } }; var Objs = client.ListObjects(listObjectsRequest); Objs.ListObjects.Objects.ForEach(obj => { Console.WriteLine($"\t|\t|- name : {obj.Name}"); GetObjectRequest getObjectRequest = new GetObjectRequest() { NamespaceName = bucketDetail.Bucket.Namespace, BucketName = bucketDetail.Bucket.Name, ObjectName = obj.Name, }; var ObjDetails = client.GetObject(getObjectRequest); Console.WriteLine($"\t|\t|- contentLength : {ObjDetails.ContentLength}"); // download /*if (!Directory.Exists("./ExampleDownload")) * { * Directory.CreateDirectory("./ExampleDownload"); * } * if (!File.Exists($"./ExampleDownload/{obj.Name.Replace('/', '_')}")) * { * client.DownloadObject(getObjectRequest, "./ExampleDownload/", obj.Name.Replace('/', '_')); * }*/ }); }); } }
/// <summary> /// 查询bucket是否存在 /// /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public HeadBucketResponse HeadBucket(HeadBucketRequest request) { return(new HeadBucketExecutor().Client(this).Execute <HeadBucketResponse, HeadBucketResult, HeadBucketRequest>(request)); }
/// <summary> /// Start the asynchronous request for checking whether a bucket exists. /// </summary> /// <param name="request">Parameters in a request for checking whether a bucket exists</param> /// <param name="callback">Asynchronous request callback function</param> /// <param name="state">Asynchronous request status object</param> /// <returns>Response to the asynchronous request</returns> public IAsyncResult BeginHeadBucket(HeadBucketRequest request, AsyncCallback callback, object state) { return(this.BeginDoRequest <HeadBucketRequest>(request, callback, state)); }
public Task <HeadBucketResponse> HeadBucketAsync(HeadBucketRequest request, CancellationToken token = default) { return(_requestHandler.SendRequestAsync <HeadBucketRequest, HeadBucketResponse>(request, token)); }
internal bool ExistsWithBucketCheck(out bool bucketExists) { bucketExists = true; try { if (String.IsNullOrEmpty(BucketName)) { return(true); } else if (String.IsNullOrEmpty(ObjectKey)) { var getBucketRequest = new HeadBucketRequest { NamespaceName = NamespaceName, BucketName = BucketName }; try { Client.HeadBucket(getBucketRequest); return(true); } catch (WebException we) { if (we.Status.Equals(WebExceptionStatus.ProtocolError) && ((HttpWebResponse)we.Response).StatusCode == HttpStatusCode.NotFound) { return(false); } throw; } } else { var request = new ListObjectsRequest() { NamespaceName = NamespaceName, BucketName = BucketName, Delimiter = "/", Prefix = ObjectStorageHelper.EncodeKey(ObjectKey), Limit = 1 }; var response = Client.ListObjects(request); return(response.ListObjects.Objects.Count > 0 || response.ListObjects.Prefixes.Count > 0); } } catch (WebException we) { if (we.Status.Equals(WebExceptionStatus.ProtocolError) && ((HttpWebResponse)we.Response).StatusCode == HttpStatusCode.NotFound) { return(false); } else { throw; } } catch (Exception e) { if (string.Equals(e.Message, "NoSuchBucket")) { return(false); } else { throw; } } }