public async Task <AccessMode> GetObjectAclAsync(string bucketName, string objectName) { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } if (string.IsNullOrEmpty(objectName)) { throw new ArgumentNullException(nameof(objectName)); } if (!await this.ObjectsExistsAsync(bucketName, objectName)) { throw new Exception($"Object '{objectName}' not in bucket '{bucketName}'."); } var result = _client.GetObjectAcl(bucketName, objectName); var mode = result.ACL switch { CannedAccessControlList.Default => AccessMode.Default, CannedAccessControlList.Private => AccessMode.Private, CannedAccessControlList.PublicRead => AccessMode.PublicRead, CannedAccessControlList.PublicReadWrite => AccessMode.PublicReadWrite, _ => AccessMode.Default, }; return(await Task.FromResult(mode)); }
public static void GetBucketAcl(string bucketName) { string key = "GetObjectSample"; try { var result = client.GetObjectAcl(bucketName, key); Console.WriteLine("Get Object Acl succeeded,Id:{0} Acl:{1} succeeded", result.Owner.Id, result.ACL.ToString()); } catch (OssException ex) { Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}", ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId); } catch (Exception ex) { Console.WriteLine("Failed with error info: {0}", ex.Message); } }