阿里云OSS存储开发

Step 1. 初始化一个OSSClient
        OSSClient是与OSS服务交互的客户端,SDK的OSS操做都是经过OSSClient完成的。

        下面代码新建了一个OSSClient:      html

using Aliyun.OpenServices.OpenStorageService;
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;

        namespace AliyunTest
        {
            class Program
            {
                static readonly string accessKeyId = "AccessKeyId";
                static readonly string accessKeySecret = "AccessKeySecret";
                //关于这个endPoint,能够参考:http://bbs.aliyun.com/read/149100.html?spm=5176.7189909.0.0.YiwiFw
                static readonly string endPoint = "http://oss-cn-beijing.aliyuncs.com";

                static void Main(string[] args)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    //使用代码...
                }
            }
        }

        在上面代码中,变量 accessKeyId 与 accessKeySecret 是由系统分配给用户的,称为ID对,用于标识用户,为访问OSS作签名验证。       

Step 2. 新建Bucket
        Bucket是OSS上的命名空间,至关于数据的容器,能够存储若干数据实体(Object)。

        你能够按照下面的代码新建一个Bucket:              阿里云

/// <summary>
                /// 新建存储对象容器Bucket
                /// </summary>
                /// <param name="bucketName">容器名称</param>
                void CreateBucket(string bucketName)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    // 新建一个Bucket
                    var bucket = ossClient.CreateBucket(bucketName);

                    Console.WriteLine(bucket.CreationDate);
                }

        因为Bucket的名字是全局惟一的,因此尽可能保证你的 bucketName 不与别人重复。

        其实也能够在阿里云的OSS管理控制台建立。spa


Step 3. 上传Object
        Object是OSS中最基本的数据单元,你能够把它简单地理解为文件,用下面代码能够实现一个Object的上传:
              code

 /// <summary>
                /// 进行对象存储
                /// </summary>
                /// <param name="bucketName">bucket名称</param>
                void PutObject(string bucketName)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    //定义文件流
                    var objStream = new System.IO.FileStream("D:\\example\\test.jpg", System.IO.FileMode.OpenOrCreate);
                    //定义 object 描述
                    var objMetadata = new ObjectMetadata();
                    var objKey = "test.jpg";

                    //执行 put 请求,而且返回对象的MD5摘要。
                    var putResult = ossClient.PutObject(bucketName, objKey, objStream, objMetadata);

                    Console.WriteLine(putResult.ETag);
                }

        Object经过InputStream的形式上传到OSS中。在上面的例子里咱们能够看出,每上传一个Object,都须要指定和Object关 联的ObjectMetadata。ObjectMetaData是用户对该object的描述,由一系列name-value对组成;其中 ContentLength是必须设置的,以便SDK能够正确识别上传Object的大小。

        Put Object请求处理成功后,OSS会将收到文件的MD5值放在返回结果的ETag中。用户能够根据ETag检验上传的文件与本地的是否一致。

Step 4. 获取指定Objec              htm

/// <summary>
                /// 获取一个存储对象
                /// </summary>
                /// <param name="bucketName">bucket名称</param>
                /// <param name="objKey">对象标识名称</param>
                void GetObject(string bucketName, string objKey)
                {
                    //初始化 OSSClient
                    OssClient ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);

                    //获取对象
                    var obj = ossClient.GetObject(bucketName, objKey);
                    //获取Object的输入流
                    var objStream = obj.Content;

                    //怎么处理数据流,您看着办吧。
                    //...

                    //最后关闭数据流。
                    objStream.Close();
                }
相关文章
相关标签/搜索