public BosObject GetObject(String bucketName, String objKey) { BosClient client = GenerateBosClient(); BosObject obj = client.GetObject(bucketName, objKey); return(obj); }
public void TestCleanup() { this.client = new BosClient(this.config); List <BucketSummary> buckets = this.client.ListBuckets().Buckets; if (buckets == null || buckets.Count == 0) { return; } foreach (BucketSummary bucket in buckets) { string bucketName = bucket.Name; if (bucketName.StartsWith("ut")) { ListObjectsResponse listObjectsResponse = this.client.ListObjects(bucketName); List <BosObjectSummary> objects = listObjectsResponse.Contents; if (objects != null && objects.Count > 0) { foreach (BosObjectSummary bosObject in objects) { String key = bosObject.Key; this.client.DeleteObject(bucketName, key); } } this.client.DeleteBucket(bucket.Name); } } }
public String getFileUrl(String bucketName, String objKey) { BosClient client = GenerateBosClient(); Uri uri = client.GeneratePresignedUrl(bucketName, objKey, 30); return(uri.AbsoluteUri); }
/// <summary> /// 判断bucket是否存在 /// </summary> /// <param name="bucketName"></param> /// <returns></returns> public Boolean checkBucketExist(String bucketName) { BosClient client = GenerateBosClient(); bool exists = client.DoesBucketExist(bucketName); return(exists); }
/// <summary> /// 获得bucket下所有文件夹信息 /// </summary> /// <param name="bucketName"></param> /// <returns></returns> public List <ObjectPrefix> getFoldersList(String bucketName) { BosClient client = GenerateBosClient(); List <ObjectPrefix> folderList = client.ListObjects(bucketName).CommonPrefixes; return(folderList); }
public ListObjectsResponse getAllObjectsList(String bucketName, String path) { BosClient client = GenerateBosClient(); ListObjectsResponse objects = client.ListObjects(bucketName, path); return(objects); }
/// <summary> /// 取得某个存储bucket下所有的文件信息,不包含文件夹 /// </summary> /// <param name="bucketName"></param> /// <returns></returns> public List <BosObjectSummary> getObjectsList(String bucketName) { BosClient client = GenerateBosClient(); List <BosObjectSummary> objects = client.ListObjects(bucketName).Contents; return(objects); }
private static void Main(string[] args) { BosClient client = GenerateBosClient(); const string bucketName = "sample-bucket-getobjecturl"; //示例Bucket名称 // 初始化:创建示例Bucket和Object client.CreateBucket(bucketName); //指定Bucket名称 string objectName = "sample"; client.PutObject(bucketName, objectName, "sampledata"); // 生成url,并通过该url直接下载和打印对象内容 string url = client.GeneratePresignedUrl(bucketName, objectName, 60).ToString(); using (WebClient webClient = new WebClient()) { using (Stream stream = webClient.OpenRead(url)) using (StreamReader streamReader = new StreamReader(stream)) { string response = streamReader.ReadToEnd(); Console.WriteLine(response); // "sampledata" } } Console.ReadKey(); }
public static Task DeleteObjectsAsync(this BosClient bosClient, string bucketName, params string[] objects) { return(Task.Run(() => { foreach (var objectKey in objects) { bosClient.DeleteObject(bucketName, objectKey); } })); }
/// <summary> /// 获取现有的bucket列表 /// </summary> /// <returns></returns> public List <BucketSummary> getBucketList() { BosClient client = GenerateBosClient(); // 获取用户的Bucket列表 List <BucketSummary> buckets = client.ListBuckets().Buckets; return(buckets); }
public ObjectMetaDataForm(BosClient bosClient, string bucketName, string objectKey) { bosClient_ = bosClient; bucket_ = bucketName; objectKey_ = objectKey; InitializeComponent(); }
/// <summary> /// 创建文件夹 /// </summary> /// <param name="bucketName"></param> /// <param name="path"></param> /// <param name="folderName"></param> /// <returns></returns> public bool CreateFolder(String bucketName, String path, String folderName) { path = path + folderName + "/"; BosClient client = this.GenerateBosClient(); PutObjectResponse putObjectFromFileResponse = client.PutObject(bucketName, path, ""); return(true); }
public bool uploadFile(String filePath, String bucketName, String path) { BosClient client = GenerateBosClient(); FileInfo fileInfo = new FileInfo(filePath); String fileName = fileInfo.Name; PutObjectResponse putObjectFromFileResponse = client.PutObject(bucketName, fileName, new FileInfo(filePath)); return(true); }
/** * * 获取单例的BOS服务的客户端 * * */ public static BosClient GetBosClient() { lock (BceClientConfiguration_Lock) { if (BosClient == null) { BosClient = new BosClient(GetBceClientConfiguration()); } } return(BosClient); }
public bool CutFile(String bucketName, String sourceKey, String targetPath) { try { BosClient client = this.GenerateBosClient(); //当是文件的时候 if (sourceKey.EndsWith(this.delimter)) { String filter = sourceKey.Substring(0, sourceKey.Length - 1); if (filter.IndexOf(this.delimter) >= 0) { filter = sourceKey.Substring(0, filter.IndexOf(this.delimter)) + this.delimter; } else { filter = String.Empty; } ListObjectsResponse response = client.ListObjects(bucketName, sourceKey); foreach (BosObjectSummary obj in response.Contents) { String key = obj.Key; String newKey = ""; if (filter.Length == 0) { newKey = targetPath + key; } else { newKey = targetPath + key.Replace(filter, ""); } client.CopyObject(bucketName, key, bucketName, newKey); client.DeleteObject(bucketName, key); } } else { String fileName = sourceKey; if (sourceKey.IndexOf(this.delimter) >= 0) { fileName = sourceKey.Substring(sourceKey.IndexOf(this.delimter)); } String newKey = targetPath + fileName; client.CopyObject(bucketName, sourceKey, bucketName, newKey); client.DeleteObject(bucketName, sourceKey); } // client.CopyObject(); return(true); } catch (Exception) { throw; } }
public BosOpenStorageService(OssConfig config) { if (config == null) { throw new ArgumentNullException("config can not be null!"); } _ossConfig = config; _clientConfiguration = new BceClientConfiguration(); _clientConfiguration.Credentials = new DefaultBceCredentials(config.AccessID, config.AccessKey); _clientConfiguration.Endpoint = config.EndPoint; _bosClient = new BosClient(_clientConfiguration); }
/// <summary> /// 获取路径下的文件列表,包含文件和文件夹 /// </summary> /// <param name="bucketName">存储的bucketName</param> /// <param name="filter">path。路径</param> /// <returns></returns> public ListObjectsResponse getObjectsList(String bucketName, String path) { BosClient client = GenerateBosClient(); ListObjectsRequest listObjectsRequest = new ListObjectsRequest(); listObjectsRequest.BucketName = bucketName; listObjectsRequest.Delimiter = delimter; listObjectsRequest.Prefix = path; ListObjectsResponse response = client.ListObjects(listObjectsRequest); return(response); }
public String readTxtFile(String bucketName, String objKey) { BosClient client = GenerateBosClient(); BosObject obj = client.GetObject(bucketName, objKey); Stream stream = obj.ObjectContent; StreamReader reader = new StreamReader(stream); String str = reader.ReadToEnd(); reader.Close(); stream.Close(); return(str); }
public bool Download1(String bucketName, String key, String fileName, String path) { // 新建GetObjectRequest GetObjectRequest getObjectRequest = new GetObjectRequest() { BucketName = bucketName, Key = key }; BosClient client = this.GenerateBosClient(); // 下载Object到文件 ObjectMetadata objectMetadata = client.GetObject(getObjectRequest, new FileInfo(path + "/" + fileName)); return(true); }
/// <summary> /// 判断文件或文件夹是否存在 /// </summary> /// <param name="bucketName"></param> /// <param name="objKey"></param> /// <returns></returns> public Boolean CheckObjExist(String bucketName, String objKey) { BosClient client = GenerateBosClient(); ListObjectsResponse objs = client.ListObjects(bucketName, objKey); if (objs.Contents.Count == 0) { return(false); } else { return(true); } }
public static Task <List <BosObjectSummary> > GetObjectsAsync(this BosClient bosClient, string bucket, string prefix, string delimiter = "") { return(Task.Run( () => { var listObjectsRequest = new ListObjectsRequest { BucketName = bucket }; listObjectsRequest.Prefix = prefix; listObjectsRequest.Delimiter = delimiter; return bosClient.ListObjects(listObjectsRequest).Contents; })); }
private static void Main(string[] args) { BosClient client = GenerateBosClient(); const string bucketName = "sample-bucket-deleteobject"; //示例Bucket名称 // 初始化:创建示例Bucket和Object client.CreateBucket(bucketName); //指定Bucket名称 string objectName = "sample"; client.PutObject(bucketName, objectName, "sampledata"); // 删除Object client.DeleteObject(bucketName, objectName); }
private static void Main(string[] args) { BosClient client = GenerateBosClient(); const string bucketName = "sample-bucket-getobject"; //示例Bucket名称 // 初始化:创建示例Bucket和Object client.CreateBucket(bucketName); //指定Bucket名称 string objectName = "sample"; client.PutObject(bucketName, objectName, "sampledata"); // 1. 获取BosObject对象并通过BosObject的输入流获取内容 BosObject bosObject = client.GetObject(bucketName, objectName); Stream objectContent = bosObject.ObjectContent; string content = new StreamReader(objectContent).ReadToEnd(); Console.WriteLine(content); // "sampledata" // 2. 通过GetObjectRequest只获取部分数据 GetObjectRequest getObjectRequest = new GetObjectRequest() { BucketName = bucketName, Key = objectName }; getObjectRequest.SetRange(0, 5); bosObject = client.GetObject(getObjectRequest); objectContent = bosObject.ObjectContent; content = new StreamReader(objectContent).ReadToEnd(); Console.WriteLine(content); // "sample" // 3. 直接通过GetObjectContent获取byte[]内容 byte[] bytes = client.GetObjectContent(bucketName, objectName); content = Encoding.Default.GetString(bytes); Console.WriteLine(content); // "sampledata" // 4. 将object内容下载到文件 FileInfo fileInfo = new FileInfo("d:\\lzb\\sample.txt"); client.GetObject(bucketName, objectName, fileInfo); content = File.ReadAllText(fileInfo.FullName); Console.WriteLine(content); // "sampledata" // 5. 只获取object的meta,不获取内容 ObjectMetadata objectMetadata = client.GetObjectMetadata(bucketName, objectName); Console.WriteLine(objectMetadata.ContentLength); // "10" Console.ReadKey(); }
/// <summary> /// 创建Bucket /// </summary> /// <param name="bucketName"></param> /// <returns></returns> public Boolean CreateBucket(String bucketName) { BosClient client = GenerateBosClient(); bool exists = client.DoesBucketExist(bucketName); if (exists) { throw new Exception("待创建的[ " + bucketName + " ]已经存在!"); } else { client.CreateBucket(bucketName); return(true); } }
public void RemoveAllMultiUploads(String bucketName) { BosClient client = this.GenerateBosClient(); ListMultipartUploadsResponse list = client.ListMultipartUploads(bucketName); foreach (MultipartUploadSummary summary in list.Uploads) { String uploadID = summary.UploadId; String key = summary.Key; String name = summary.Owner.DisplayName; client.AbortMultipartUpload(bucketName, key, uploadID); String sss = ""; } }
public void TestPublicReadWrite() { string objectKey = "objectPublicReadWrite"; string data = "dataPublicReadWrite"; this.client.SetBucketAcl(this.bucketName, BosConstants.CannedAcl.PublicReadWrite); GetBucketAclResponse response = this.client.GetBucketAcl(this.bucketName); Assert.AreEqual(response.Owner.Id, this.grantee.Id); List <Grant> grants = new List <Grant>(); List <Grantee> granteeOwner = new List <Grantee>(); granteeOwner.Add(this.grantee); List <string> permissionOwner = new List <string>(); permissionOwner.Add(BosConstants.Permission.FullControl); grants.Add(new Grant() { Grantee = granteeOwner, Permission = permissionOwner }); List <Grantee> granteeAnonymous = new List <Grantee>(); granteeAnonymous.Add(this.anonymous); List <string> permissionAnonymous = new List <string>(); permissionAnonymous.Add(BosConstants.Permission.Read); permissionAnonymous.Add(BosConstants.Permission.Write); grants.Add(new Grant() { Grantee = granteeAnonymous, Permission = permissionAnonymous }); Assert.AreEqual(response.AccessControlList.Count, grants.Count); this.client.PutObject(this.bucketName, objectKey, data); BceClientConfiguration bceClientConfiguration = new BceClientConfiguration(); bceClientConfiguration.Endpoint = this.endpoint; BosClient bosAnonymous = new BosClient(bceClientConfiguration); Assert.AreEqual( Encoding.Default.GetString(bosAnonymous.GetObjectContent(this.bucketName, objectKey)), data); bosAnonymous.PutObject(this.bucketName, "anonymous", "dataAnonymous"); Assert.AreEqual( Encoding.Default.GetString(bosAnonymous.GetObjectContent(this.bucketName, "anonymous")), "dataAnonymous"); }
/// <summary> /// 上传指定文件到百度云BOS。 /// </summary> /// <param name="file">待上传的文件</param> /// <param name="suffix">文件在云空间里的后缀</param> /// <exception cref="Exception"/> public Task Upload(string file, string suffix) { BceClientConfiguration config = new BceClientConfiguration(); config.Credentials = new DefaultBceCredentials(id, key); config.Endpoint = endpoint; if (timeout > 0) { config.ReadWriteTimeoutInMillis = timeout; } BosClient client = new BosClient(config); client.PutObject(bucket, path + suffix, new FileInfo(file)); return(Task.CompletedTask); }
private static void Main(string[] args) { BosClient client = GenerateBosClient(); const string bucketName = "sample-bucket"; //示例Bucket名称 // 新建一个Bucket client.CreateBucket(bucketName); //指定Bucket名称 // 设置Bucket为Private client.SetBucketAcl(bucketName, BosConstants.CannedAcl.Private); // 设置Bucket为PublicRead client.SetBucketAcl(bucketName, BosConstants.CannedAcl.PublicRead); List <Grant> grants = new List <Grant>(); List <Grantee> grantee = new List <Grantee>(); List <string> permission = new List <string>(); //授权给特定用户 grantee.Add(new Grantee() { Id = "userid1" }); grantee.Add(new Grantee() { Id = "userid2" }); //授权给Everyone grantee.Add(new Grantee() { Id = "*" }); //设置权限 permission.Add(BosConstants.Permission.Read); permission.Add(BosConstants.Permission.Write); grants.Add(new Grant() { Grantee = grantee, Permission = permission }); client.SetBucketAcl(new SetBucketAclRequest() { BucketName = bucketName, AccessControlList = grants }); }
private static void Main(string[] args) { BosClient client = GenerateBosClient(); const string bucketName = "sample-bucket-putobject993"; //示例Bucket名称 const string objectNameFile = "sample-bucket-putobject-file"; //file上传的object名称 const string objectNameStream = "sample-bucket-putobject-stream"; //stream上传的object名称 const string objectNameString = "sample-bucket-putobject-string"; //string上传的object名称 const string objectNameByte = "sample-bucket-putobject-byte"; //byte上传的object名称 // 新建一个Bucket client.CreateBucket(bucketName); //指定Bucket名称 // 设置待上传的文件名,例如d:\\sample.txt const string fileName = "your file and path"; // 以文件形式上传Object PutObjectResponse putObjectFromFileResponse = client.PutObject(bucketName, objectNameFile, new FileInfo(fileName)); // 以数据流形式上传Object PutObjectResponse putObjectResponseFromInputStream = client.PutObject(bucketName, objectNameStream, new FileInfo(fileName).OpenRead()); // 以二进制串上传Object PutObjectResponse putObjectResponseFromByte = client.PutObject(bucketName, objectNameByte, Encoding.Default.GetBytes("sampledata")); // 以字符串上传Object PutObjectResponse putObjectResponseFromString = client.PutObject(bucketName, objectNameString, "sampledata"); // 打印四种方式的ETag---演示例子中,文件方式和stream方式的ETag相等,string方式和byte方式的ETag相等 Console.WriteLine(putObjectFromFileResponse.ETAG); Console.WriteLine(putObjectResponseFromInputStream.ETAG); Console.WriteLine(putObjectResponseFromByte.ETAG); Console.WriteLine(putObjectResponseFromString.ETAG); // 上传Object并设置自定义参数 ObjectMetadata meta = new ObjectMetadata(); // 设置ContentLength大小 meta.ContentLength = 10; // 设置ContentType meta.ContentType = "application/json"; // 设置自定义元数据name的值为my-data meta.UserMetadata["name"] = "my-data"; // 上传Object并打印ETag putObjectResponseFromString = client.PutObject(bucketName, objectNameString, "sampledata", meta); Console.WriteLine(putObjectResponseFromString.ETAG); }
private static void Main(string[] args) { BosClient client = GenerateBosClient(); const string bucketName = "sample-base"; //示例Bucket名称 const string objectKey = "sample-object"; //示例object名称 //创建Bucket client.CreateBucket(bucketName); //上传Object FileInfo file = new FileInfo("d:\\lzb\\sample.txt"); //上传文件的目录 PutObjectResponse putObjectFromFileResponse = client.PutObject(bucketName, objectKey, file); Console.WriteLine(putObjectFromFileResponse.ETAG); //查看Object ListObjectsResponse listObjectsResponse = client.ListObjects(bucketName); foreach (BosObjectSummary objectSummary in listObjectsResponse.Contents) { Console.WriteLine("ObjectKey: " + objectSummary.Key); } // 获取Object BosObject bosObject = client.GetObject(bucketName, objectKey); // 获取ObjectMeta ObjectMetadata meta = bosObject.ObjectMetadata; // 获取Object的输入流 Stream objectContent = bosObject.ObjectContent; // 处理Object FileStream fileStream = new FileInfo("d:\\lzb\\sampleout.txt").OpenWrite(); //下载文件的目录/文件名 byte[] buffer = new byte[2048]; int count = 0; while ((count = objectContent.Read(buffer, 0, buffer.Length)) > 0) { fileStream.Write(buffer, 0, count); } // 关闭流 objectContent.Close(); fileStream.Close(); Console.WriteLine(meta.ETag); Console.WriteLine(meta.ContentLength); }