public static DownloadResult DownloadObject(DownloadRecord record, String targetFolder, long start = 0, long end = 199) { GetObjectRequest getObjectRequest = new GetObjectRequest() { BucketName = BosConfig.BucketName, Key = record.CloudFile.Key }; // 获取 范围内的数据 getObjectRequest.SetRange(start, end); // 获取Object,返回结果为BosObject对象 try { BosObject bosObject = GetBosClient().GetObject(getObjectRequest); Stream stream = bosObject.ObjectContent; return(FileUtil.saveFileContent(stream, record.FileName, targetFolder)); } catch (BceServiceException BceServiceException) { if (BceServiceException.Message.IndexOf("The requested range cannot be satisfied") != -1) { DownloadResult result2 = new DownloadResult(); result2.state = 1; return(result2); } Console.WriteLine("exception:" + BceServiceException); } DownloadResult result = new DownloadResult(); result.state = 2; return(result); }
public void TestGetRange() { string path = "put_object_ordinary.txt"; File.WriteAllText(path, "data"); FileInfo fileInfo = new FileInfo(path); string key = "te%%st "; PutObjectRequest request = new PutObjectRequest() { BucketName = this.bucketName, Key = key, FileInfo = fileInfo }; this.client.PutObject(request); GetObjectRequest getObjectRequest = new GetObjectRequest() { BucketName = this.bucketName, Key = key }; getObjectRequest.SetRange(0, 0); BosObject bosObject = this.client.GetObject(getObjectRequest); String content = Encoding.Default.GetString(IOUtils.StreamToBytes(bosObject.ObjectContent, bosObject.ObjectMetadata.ContentLength, 8192)); Assert.AreEqual(content, "d"); }
public BosObject GetObject(String bucketName, String objKey) { BosClient client = GenerateBosClient(); BosObject obj = client.GetObject(bucketName, objKey); return(obj); }
public void TestGetIAOk() { string path = "put_object_ordinary.txt"; File.WriteAllText(path, "data"); FileInfo fileInfo = new FileInfo(path); string key = "te%%st "; var meta = new ObjectMetadata(); meta.StorageClass = BosConstants.StorageClass.StandardInfrequentAccess; PutObjectRequest request = new PutObjectRequest() { BucketName = this.bucketName, Key = key, FileInfo = fileInfo, ObjectMetadata = meta }; String eTag = this.client.PutObject(request).ETAG; Assert.AreEqual(eTag, HashUtils.ComputeMD5Hash(fileInfo)); BosObject bosObject = this.client.GetObject(this.bucketName, key); String content = Encoding.Default.GetString(IOUtils.StreamToBytes(bosObject.ObjectContent, bosObject.ObjectMetadata.ContentLength, 8192)); Assert.AreEqual(content, "data"); Assert.AreEqual(BosConstants.StorageClass.StandardInfrequentAccess, bosObject.ObjectMetadata.StorageClass); }
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); }
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(); }
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); }
public void TestOrdinary() { string path = "put_object_ordinary.txt"; File.WriteAllText(path, "data"); FileInfo fileInfo = new FileInfo(path); string key = "te%%st "; PutObjectRequest request = new PutObjectRequest() { BucketName = this.bucketName, Key = key, FileInfo = fileInfo }; String eTag = this.client.PutObject(request).ETAG; Assert.AreEqual(eTag, HashUtils.ComputeMD5Hash(fileInfo)); BosObject bosObject = this.client.GetObject(this.bucketName, key); String content = Encoding.Default.GetString(IOUtils.StreamToBytes(bosObject.ObjectContent, bosObject.ObjectMetadata.ContentLength, 8192)); Assert.AreEqual(content, "data"); }
public void Write() { BosClient client = GenerateBosClient(); BosObject obj = client.GetObject("", ""); // obj.ObjectContent }