【对象存储】关于阿里云OSS踩坑记录
前言:最近笔者通过PHP做了一个上传文件到阿里云OSS存储的程序,在上传过程中官方文档写的很清楚,几乎没有遇到什么问题,但在访问文件的过程中,遇到了问题,由于笔者的bucket是私有域,所以访问时,首先要授权,通过sts生成临时用户和token,然后通过oss授权访问接口生成临时访问链接,但是在生成访问链接的时候官方文档并没有写清楚调用方式,所以笔者把文档重新梳理了一下。
一、STS拿到临时AK和securityToken (通过阿里云子用户生成临时用户和令牌)
1、创建用户子账号
1)云账号登录RAM控制台。
2)在左侧导航栏的人员管理菜单下,单击用户。
3)单击新建用户。
4)输入登录名称和显示名称。
5)在访问方式区域下,选择编程访问。
6)单击确定。
7)勾选目标RAM用户,单击添加权限,被授权主体会自动填入。
8)在添加权限页面,为已创建子账号添加AliyunSTSAssumeRoleAccess权限。
2、创建权限策略
1)云账号登录RAM控制台。
2)在左侧导航栏的权限管理菜单下,单击权限策略管理。
3)单击新建权限策略。
4)填写策略名称和备注。
5)配置模式选择可视化配置或脚本配置。
以脚本配置为例,对ram-test(OSS的BUCKET)添加ListObjects与GetObject等只读权限,在策略内容中配置脚本如下:
3、创建角色。
1)云账号登录RAM控制台。
2)在左侧导航栏,单击RAM角色管理。
3)单击新建RAM角色,选择可信实体类型为阿里云账号,单击下一步。
4)在新建RAM角色页面,填写RAM角色名称和备注,本示例RAM角色名称为RamOssTest。
5)选择云账号为当前云账号。
6)单击完成。
7)单击为角色授权,被授权主体会自动填入。
8)在添加权限页面,选择自定义权限策略,添加步骤2中创建的策略Ramtest。
添加策略后,页面如下图所示:
4、通过STS API获取STS AK与SecurityToken。
通过调用STS服务接口AssumeRole来获取有效访问凭证。STS SDK的安装及使用详见STS PHP SDK安装及使用。
以下是官方代码:
参数说明如下:
- AccessKeyId、AccessKeySecret:子账号AK信息。
- RoleArn:需要扮演的角色ID。
- RoleSessionName:用来标识临时凭证的名称,建议使用不同的应用程序用户来区分。
- Policy:在扮演角色的时候额外添加的权限限制。
注意:
① REGION_ID 和 ENDPOINT
这里的ENDPOINT并不是OSS云存储的ENDPOINT
具体请参考STS各区域的endpoint,接入地址
下面列出部分:
大中华地区都可以用,但最好是在OSS同地区
② POLICY
以上代码是官方给出的代码,但插入我的PHP项目中会报错,因为php不支持json格式的变量声明
做以下修改
③ 最大的坑
本来以为只用一个STS的SDK就够了,原来还有一个core的SDK,官方并没有对这SDK进行说明
而且STS的SDK在GITHUB上并没有单独下载的地方,所以要全部下载
https://github.com/aliyun/aliyun-openapi-php-sdk
只使用下面两个:
关于调用方式
由于core SDK并没有用到命名空间,做以下修改
二、使用STS进行临时授权访问
参数说明如下:
- accessKeyId 、第一步拿到的临时AK
- accessKeySecret :第一步拿到的临时AKS
- securityToken :第一步拿到的临时令牌
最后:基本上第一步没有问题的话,第二步会很流畅的运行,但就是因为官方文档写的不清不楚,导致在调用的时候好多都要靠猜,对第一次调用PHPer来说很不友好,此篇文章是自己第一次调用“授权访问”的笔记,也希望对以后调用的人有帮助。
【对象存储】关于阿里云OSS踩坑记录相关推荐
- thymeleaf从后台application中取值 APlayer音乐播放器插件的使用 音乐存储在阿里云OSS
1.后台: List<Map<String,Object>> musicMapList = ossFileService.getMusicList(); // 音乐播放列表 J ...
- harbor安装_Harbor简单安装部署,镜像仓库存储使用阿里云OSS
使用docker-compose创建,此方法简单,问题是无法做到高可用. 环境准备: Harbor使用最新版本的harbor-offline-installer-v2.0.2.tgz 下载链接: ht ...
- Laravel Admin: Voyager 存储增加阿里云OSS
前提条件:Voyager 已经安装完成,本地存储工作正常. Storage增加阿里云OSS支持: 在项目下利用composer安装 composer require jacobcyl/ali-oss- ...
- (转)云存储:阿里云OSS 、又拍云和 七牛 的比较
阿里OSS:好处就是,那是一套完整的体系,存储,数据库,CDN,服务器,阿里都可以给你全包.缺点,费用对于没有盈利的网站来说太高了,好像定位就是给那些高端客户使用的,而且CDN,OSS的流量是分开收费 ...
- Springboot+阿里云kafka踩坑实录
场景描述:上文写到,不断接收数据并存放到OSS,现在要把数据存到MQ的kafka一份. springboot版本为1.5.9. 开工之前先阅读阿里云官方kafka消息接入说明:https://help ...
- ossfs挂载百度对象存储_阿里云对象存储OSS挂载工具
前言 宝塔面板里有类似服务9.9一个月,愿意花钱的大佬们也不会搜到我这篇文章 不想花钱的小伙伴们就仔细看看下面我这篇文章吧 科普:linux常用命令: ls 查看当前目录下文件 安装及配置 下载:安装 ...
- 数据库自动备份并存储至阿里云OSS
因为自己的服务器挂了一些服务并会产生一些比较有用的数据,而且最近发现服务器老被ddos攻击,所以就做了一些安全措施 安装安全狗软件 阿里云安全中心服务购买 最重要的也是本次要介绍的就是备份数据库, 本 ...
- 阿里播放器踩坑记录 进度条重构 video loadByUrl失效解决方案
如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 文档地址:https://player.alicdn.com/aliplayer/index. ...
- 【阿里云OSS对象存储搭配CDN加速使用】
阿里云OSS对象存储搭配CDN加速使用 什么是CDN? 为什么选择阿里云CDN? 按流量计费说明 CDN按流量计费费如下: OSS外网流出流量标准收费如下: 步骤一:准备工作 步骤二.开通CDN 涉及 ...
最新文章
- 《Engineering》评选2021年全球十大工程成就 | 中国工程院院刊
- .Net Framework 4.5.1 安装时遇到严重错误 问题的解决方法
- 使用WKWebView替换UIWebView
- C++ Primer 5th笔记(chap 16 模板和泛型编程)实例化
- 2017年4月19日
- 恩布开源安卓手机IM,EntboostIM发布1.5.1版本
- spring的依赖注入的方式(待更新)
- 用 Python 实现电影订票系统 | 内附源码
- windows 生成ssh 密钥
- Maven项目引入JS,css等文件的问题
- js逆向巨潮mcode
- 微信小程序调用weUI库
- IPU相关知识(一)
- 神器,阿里巴巴Java代码检查插件
- Linux内核数据包格式
- cmd输入cl提示不是内部命令
- 字体与版式设计 字体设计让你的信息变独特
- 组态王网页服务器,组态王6.55WEB全新发布详细步骤
- linux 监听图形,Zabbix3.2+Grafana4.0实现可视化监控图形
- BDP FL PEG4 (4E) TCO,亲水性PEG间隔臂可以增加水溶性,2183473-16-5