zoukankan      html  css  js  c++  java
  • 阿里云OSS存储开发(一)

    Step 1. 初始化一个OSSClient

    OSSClient是与OSS服务交互的客户端,SDK的OSS操作都是通过OSSClient完成的。

    下面代码新建了一个OSSClient:

    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);
    
                //使用代码...
            }
        }
    }

    在上面代码中,变量 accessKeyIdaccessKeySecret 是由系统分配给用户的,称为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管理控制台创建。

    Step 3. 上传Object

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

            /// <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

            /// <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();
            }

    最终文件怎么访问呢?你猜(上阿里云的管理控制台看看你就知道了)...

  • 相关阅读:
    Python之路-(js正则表达式、前端页面的模板套用、Django基础)
    Python之路-jQuery
    单例模式实际应用
    hibernate联合主键注解配置
    spring:ContextLoaderListener接口
    Struts2 校验
    Control character in cookie value, consider BASE64 encoding your value-Cookie保存中文出错[转]
    基于Cookie跨域的单点登录问题
    Spring:启动项目时加载数据库数据(总结)
    Oracle表分区[转]
  • 原文地址:https://www.cnblogs.com/easeyeah/p/4109584.html
Copyright © 2011-2022 走看看