开发者社区> 问答> 正文

.NET-SDK之如何实现快速入门(二)?


示例程序


下面是一个完整的程序,演示了创建存储空间,设置存储空间ACL,查询存储空间的ACL,上传文件,下载文件,查询文件列表,删除文件,删除存储空间等操作。using System;using System.Collections.Generic;using Aliyun.OSS;namespace TaoYe{/// <summary>/// 快速入门示例程序/// </summary>public static class SimpleSamples{private const string _accessKeyId = "<your AccessKeyId>";private const string _accessKeySecret = "<your AccessKeySecret>";private const string _endpoint = "<valid host name>";private const string _bucketName = "<your bucket name>";private const string _key = "<your key>";private const string _fileToUpload = "<your local file path>";private static OssClient _client = new OssClient(_endpoint, _accessKeyId, _accessKeySecret);public static void Main(string[] args){CreateBucket();SetBucketAcl();GetBucketAcl();PutObject();ListObjects();GetObject();DeleteObject();// DeleteBucket();Console.WriteLine("Press any key to continue . . . ");Console.ReadKey(true);}/// <summary>/// 创建一个新的存储空间/// </summary>private static void CreateBucket(){try{var result = _client.CreateBucket(_bucketName);Console.WriteLine("创建存储空间{0}成功", result.Name);}catch (Exception ex){Console.WriteLine("创建存储空间失败. 原因:{0}", ex.Message);}}/// <summary>/// 上传一个新文件/// </summary>private static void PutObject(){try{_client.PutObject(_bucketName, _key, _fileToUpload);Console.WriteLine("上传文件成功");}catch (Exception ex){Console.WriteLine("上传文件失败.原因: {0}", ex.Message);}}/// <summary>/// 列出存储空间内的所有文件/// </summary>private static void ListObjects(){try{var keys = new List<string>();ObjectListing result = null;string nextMarker = string.Empty;/// 由于ListObjects每次最多返回100个结果,所以,这里需要循环去获取,直到返回结果中IsTruncated为falsedo{var listObjectsRequest = new ListObjectsRequest(_bucketName){Marker = nextMarker,MaxKeys = 100};result = _client.ListObjects(listObjectsRequest);foreach (var summary in result.ObjectSummaries){keys.Add(summary.Key);}nextMarker = result.NextMarker;} while (result.IsTruncated);Console.WriteLine("列出存储空间中的文件");foreach (var key in keys){Console.WriteLine("文件名称:{0}", key);}}catch (Exception ex){Console.WriteLine("列出存储空间中的文件失败.原因: {0}", ex.Message);}}/// <summary>/// 下载文件/// </summary>private static void GetObject(){try{var result = _client.GetObject(_bucketName, _key);Console.WriteLine("下载的文件成功,名称是:{0},长度:{1}", result.Key, result.Metadata.ContentLength);}catch (Exception ex){Console.WriteLine("下载文件失败.原因:{0}", ex.Message);}}/// <summary>/// 删除文件/// </summary>private static void DeleteObject(){try{_client.DeleteObject(_bucketName, _key);Console.WriteLine("删除文件成功");}catch (Exception ex){Console.WriteLine("删除文件失败.原因: {0}", ex.Message);}}/// <summary>/// 获取存储空间ACL的值/// </summary>private static void GetBucketAcl(){try{var result = _client.GetBucketAcl(_bucketName);foreach (var grant in result.Grants){Console.WriteLine("获取存储空间权限成功,当前权限:{0}", grant.Permission.ToString());}}catch (Exception ex){Console.WriteLine("获取存储空间权限失败.原因: {0}", ex.Message);}}/// <summary>/// 设置存储空间ACL的值/// </summary>private static void SetBucketAcl(){try{_client.SetBucketAcl(_bucketName, CannedAccessControlList.PublicRead);Console.WriteLine("设置存储空间权限成功");}catch (Exception ex){Console.WriteLine("设置存储空间权限失败. 原因:{0}", ex.Message);}}/// <summary>/// 删除存储空间/// </summary>private static void DeleteBucket(){try{_client.DeleteBucket(_bucketName);Console.WriteLine("删除存储空间成功");}catch (Exception ex){Console.WriteLine("删除存储空间失败", ex.Message);}}}}

展开
收起
青衫无名 2017-10-18 14:51:53 1427 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载