public Task <bool> ObjectsExistsAsync(string bucketName, string objectName) { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } objectName = FormatObjectName(objectName); bucketName = ConvertBucketName(bucketName); try { //build request HeadObjectRequest request = new HeadObjectRequest(bucketName, objectName); //执行请求 HeadObjectResult result = _client.HeadObject(request); if (result.IsSuccessful()) { return(Task.FromResult(true)); } else { return(Task.FromResult(false)); } } catch (CosServerException ex) { if (ex.statusCode == 404) { return(Task.FromResult(false)); } throw; } }
public async Task <ItemMeta> GetObjectMetadataAsync(string bucketName, string objectName, string versionID = null, string matchEtag = null, DateTime?modifiedSince = null) { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } if (string.IsNullOrEmpty(objectName)) { throw new ArgumentNullException(nameof(objectName)); } bucketName = ConvertBucketName(bucketName); HeadObjectRequest request = new HeadObjectRequest(bucketName, objectName); if (!string.IsNullOrEmpty(versionID)) { request.SetVersionId(versionID); } //执行请求 HeadObjectResult result = _client.HeadObject(request); if (!result.IsSuccessful()) { throw new Exception("Query object meta data failed."); } ItemMeta metaData = new ItemMeta() { ObjectName = objectName, Size = result.size, ETag = result.eTag, IsEnableHttps = Options.IsEnableHttps, }; return(await Task.FromResult(metaData)); }