阿里云OSS存储开发(一)
来源:互联网 发布:所有域名 编辑:程序博客网 时间:2024/04/28 03:55
转载自:http://www.cnblogs.com/easeyeah/p/4109584.html
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); //使用代码... } }}
在上面代码中,变量 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管理控制台创建。
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(); }
最终文件怎么访问呢?你猜(上阿里云的管理控制台看看你就知道了)...
0 0
- 阿里云OSS存储开发(一)
- 阿里云OSS存储开发
- 阿里云OSS存储基于JAVA基本使用(一)
- 阿里云OSS(对象存储服务)
- 阿里云OSS开发
- 阿里云学习一 - 开始于OSS云存储服务
- 阿里云oss云存储
- 阿里云OSS对象存储
- 使用java开发阿里云OSS开放云存储服务
- Laravel整合UEditor编辑器使用阿里云OSS存储(一)UEditor搭建和使用
- Laravel整合UEditor编辑器使用阿里云OSS存储(一)UEditor搭建和使用
- 阿里云oss存储(python+oss实现定时备份到阿里云)
- 阿里云oss存储(js端签名直传)
- Laravel整合UEditor编辑器使用阿里云OSS存储(二)改造UEditor上传OSS
- Laravel整合UEditor编辑器使用阿里云OSS存储(二)改造UEditor上传OSS
- 阿里云OSS开放云存储小结
- 文件上传-阿里云OSS-存储文件
- ThinkPHP之阿里云存储(OSS)
- Android 解决65535的限制 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
- c函数调用过程原理及函数栈帧分析
- Codeforces 111C Petya and Spiders 题解&代码
- Android画图之抗锯齿
- JSONP
- 阿里云OSS存储开发(一)
- 【Git commit错误】 cant not commit a partial during a merge
- SQL代码应用示例
- C#关键字-运算符关键字-new
- Linux/Unix 环境变量设置实例
- 初次使用phpMyAdmin & MySql修改root密码
- Android log信息的跨进程读取问题
- 接入 PayPal iOS SDK
- edison intel sst audio驱动注册流程