阿里云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();
        }

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

时间: 2024-09-30 07:34:34

阿里云OSS存储开发(一)的相关文章

阿里云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.Threa

jeesz分布式架构集成阿里云oss存储

1. 服务接口定义 /** * 文件上传  1:头像 2:显示图片 3:个人封面  :4:基础图片 * @param request * @param response * @param uid 用户id * @param userType 文件上传  1:头像 2:显示图片 3:个人封面  :4:基础图片 0:视频 * @param files 上传的文件对象 * @return * @throws Exception */ @RequestMapping(value = "/upload/b

php将图片存储在阿里云oss存储上

一个配置文件 创建两个方法 1.上传方法 /** * 存储文件 * * @param $srcFile * @param $desFile * @throws Exception */public function storage_save($srcPath, $desPath){ //配置 $accessKeyId = ''; $accessKeySecret = ''; $endpoint = ''; $bucket = ''; $ossClient = new \OSS\OssClient

阿里云oss存储作一级源站与本地mfs存储作二级源站方案

在百度cdn新建cdn域名,主源站地址填写阿里oss的Bucket 域名meizu-news.oss-cn-hangzhou.aliyuncs.com 2.在百度回源配置里,配置回源hosts 3.在阿里云oss存储页面配置,镜像回二级mfs源站,镜像回源具体说明可参考阿里云官方文档:https://help.aliyun.com/document_detail/31865.html?spm=5176.8466029.retrieving.1.4e9d1450qhzYuu 4.填入mfs的LVS

安卓手把手教你结合阿里云OSS存储实现视频(音频,图片)的上传与下载

首先,明白阿里云OSS是个什么鬼 阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务.用户可以通过调用API,在任何应用.任何时间.任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理.OSS适合存放任意文件类型,适合各种网站.开发企业及开发者使用. 以上是官方解释.可以看出,OSS可以为我们在后台保存任何数据,强大无比. 步入正题: 首先你得有个阿里云账号(淘宝账号也可以哦,毕竟阿里账号都通用)

总结一下阿里云OSS的开发坑(Java篇)

一.序言 OSS(Object Storage Service)是阿里云提供的一款云存储服务,具有海量.安全.低成本.高可靠的特点. 由于客户选择了OSS,我们作为开发方也开始接触它.在实际开发过程中遇到了各种各样的坑,经自己多次实践及阿里技术人员的协助,终得以完成任务. 阿里方面为OSS提供了多种语言的开发接口,我们用到了其中两种:Java和C/C++.本文为Java篇,C/C++的将在另一篇给出. 二.OSS的一些概念 EndPoint, accessKeyID, accessKeySecr

J2EE分布式架构集成阿里云OSS存储

摘要: 1. 服务接口定义 / 文件上传 1:头像 2:显示图片 3:个人封面 :4:基础图片 @param request @param response @param uid 用户id @param userType 文件上传 1:头像 2:显示图片 3:个人封面 :4:基础图片 0:视频 @param files 上传的文件对象 * @return 服务接口定义 /** 文件上传 1:头像 2:显示图片 3:个人封面 :4:基础图片 *@paramrequest *@paramrespon

(转)云存储:阿里云OSS 、又拍云和 七牛 的比较

阿里OSS:好处就是,那是一套完整的体系,存储,数据库,CDN,服务器,阿里都可以给你全包.缺点,费用对于没有盈利的网站来说太高了,好像定位就是给那些高端客户使用的,而且CDN,OSS的流量是分开收费,带宽(2倍成本,呵呵).又拍云:算是老牌静态存储服务商,自带有CDN.存储空间可以弹性增加(不知道可不可以弹性减少,我只是免费使用了一下).费用计算公式(空间和流量),请求次数是免费.可免费试用7天.开源的程序(DZ,PW,WP)都有插件,也可以直接使用FTP,对于技术上要求不是太高就可以使用.七

iOS使用阿里云OSS对象存储 (SDK 2.1.1)

最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所调用的方法差别较大(自我感觉),当然原理都一样.所以看了两天SDK,自己封装了几个常用的方法. 一.OSS简单介绍 OSS是提供非结构化数据存取的服务,非结构化数据一般包括图片.文档.音频.视频等一些文件.OSS提供了接口,开发者可以通过这些接口对数据进行上传或下载等操作. 开通OSS服务后,创建一