学习使用阿里云OSS

Paste_Image.png

OSS: Object Storage Service

初次接触之控制台操作

操作教程地址

  1. 开通
    40g/年 9块钱

  2. 创建存储空间

存储空间(Bucket)
存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。您可以设置和修改存储空间属性用来控制地域、访问权限、生命周期等,这些属性设置直接作用于该存储空间内所有对象,因此您可以通过灵活创建不同的存储空间来完成不同的管理功能。
同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。
每个用户可以拥有多个存储空间。
存储空间的名称在 OSS 范围内必须是全局唯一的,一旦创建之后无法修改名称。
存储空间内部的对象数目没有限制。
存储空间的命名规范如下:
只能包括小写字母、数字和短横线(-)。
必须以小写字母或者数字开头和结尾。
长度必须在3-63字节之间。
基本名词解释

没有子目录的一个空间,所有存储对象直接放在里面。

基本配置:
bucketName: damon4bucket
权限: 公共读
OSS外网域名: damon4bucket.oss-cn-shanghai.aliyuncs.com OSS内网域名:damon4bucket.oss-cn-shanghai-internal.aliyuncs.com

其他配置暂时不理

Paste_Image.png

上传文件

您已经创建了存储空间,现在您可以上传任意类型文件到存储空间中。通过 OSS 控制台您可以上传小于500MB 的文件。如您要上传的文件大于500MB,请参阅 阿里云 OSS 开发人员指南 中的对应章节。

文件分享

创建后得到的文件地址如下:

http://damon4bucket.oss-cn-shanghai.aliyuncs.com/www.cr173.com001.jpg
可以绑定自定义域名,暂不理

删除对象文件和删除bucket

控制台操作都是傻瓜式操作,不作过多解释。

Paste_Image.png

客户端一览

Paste_Image.png

开发者指南

不是文件系统,所以注意文件名,如果重复那么就会被覆盖。

访问oss:

带身份验证的访问

  1. 使用控制台访问OSS:控制台中对用户隐藏了身份验证的细节,使用控制台访问OSS的用户无需关注细节。
  2. 使用SDK访问OSS:OSS提供了多种开发语言的SDK,SDK中实现了签名算法,只需要将AK信息作为参数输入即可。
  3. 根据API访问OSS:如果您想用自己喜欢的语言来封装调用RESTful API接口,您需要实现签名算法来计算签名。具体的签名算法可以参考API手册中的 在Header中包含签名 和 在URL中包含签名。

接下来需要使用nodejs的sdk接入,首先了解下访问控制

访问控制和AccessKey

访问控制入口在管理控制台右上角用户头像下的dropbox中
有三种访问控制

  1. AccessKey 完全访问权限
  2. RAM (Resource Access Management) 最佳实践
  3. STS (Security Token Service) 临时访问控制

因为公司之前的后端哥们使用了AK操作, 那么根据手头上的项目,我首先使用AccessKey来操作。

AK申请地址

AccessKeyId: xxxxxxxxx... => length = 16
AccessKeySecret: xxxxxxxxxxxxxx..... => length = 30

请谨慎使用AK访问!

  • 跨域访问

需求: 用户上传文件
oss地址 your_server地址
由于跨域限制,用户只能向your_server上传,然后通过your_server中转到oss

原理:
(http三次握手中建立)
用户访问请求头带有origin:your_server => 1
访问的目标服务器(oss服务器)返回头带有: Access-Control-Allow-Origin: your_server / * => 2
如果返回的结果是不能访问,那么浏览器就会拦截请求 => 3(握手成功或者失败)

使用跨域请求的时候需要关注浏览器是否开启了Cache功能。当运行在同一个浏览器上分别来源于www.a.comwww.b.com的两个页面都同时请求同一个跨域资源的时候,如果www.a.com的请求先到达服务器,服务器将资源带上Access-Control-Allow-Origin的Header为www.a.com返回给用户。这个时候www.b.com又发起了请求,浏览器会将Cache的上一次请求返回给用户,此时Header的内容和CORS的要求不匹配,就会导致后面的请求失败。

设置跨域资源共享

用户直接上传资源到oss,不用经过oss,但是必须通过STS给予临时访问权限,否则会有恶意上传的问题
先设置好跨域资源共享

使用sdk访问

当用户以个人身份向OSS发送请求时,其身份验证的实现如下:
1. 用户将发送的请求按照OSS指定的格式生成签名字符串。
2. 用户使用AccessKeySecret对签名字符串进行加密产生验证码。
3. OSS收到请求以后,通过AccessKeyId找到对应的AccessKeySecret,以同样的方法提取签名字符串和验证码。
4. 如果计算出来的验证码和提供的一样即认为该请求是有效的。
否则,OSS将拒绝处理这次请求,并返回HTTP 403错误。

对于用户来说可以直接使用OSS提供的SDK,配合不同类型的AccessKey即可实现不同的身份验证。

基于OSS的移动开发

Paste_Image.png

基本架构分为两种(以用户和OSS交互需要的认证方式分类)

  1. 基于RAM和TST的授权方案
  2. 基于AccessKey的URL凭证方案

AK方式的上传
1. 客户端向应用服务器发出上传文件到OSS的请求。
2. 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。
3. 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。
4. 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。

AK方式的下载
1. 客户端向应用服务器发出下载OSS文件的请求。
2. 应用服务器回复客户端,将签名URL返回给客户端。
3. 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。
4. 客户端成功从OSS下载文件。

最佳实践是通过RAM实现

实现文件上传

主要看第三方上传(就是客户端直接上传至OSS,不需要中间服务器)

可以使用OSS搭建静态网站,只要在bucket属性设置中的静态页面设置入口页面的文件名就可以了

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

本来想把文件上传做好的,但是回调的验证还是没有搞通过。明天再整理整理。

Paste_Image.png
Paste_Image.png

在线演示

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容