前言:最近笔者通过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踩坑记录相关推荐

  1. thymeleaf从后台application中取值 APlayer音乐播放器插件的使用 音乐存储在阿里云OSS

    1.后台: List<Map<String,Object>> musicMapList = ossFileService.getMusicList(); // 音乐播放列表 J ...

  2. harbor安装_Harbor简单安装部署,镜像仓库存储使用阿里云OSS

    使用docker-compose创建,此方法简单,问题是无法做到高可用. 环境准备: Harbor使用最新版本的harbor-offline-installer-v2.0.2.tgz 下载链接: ht ...

  3. Laravel Admin: Voyager 存储增加阿里云OSS

    前提条件:Voyager 已经安装完成,本地存储工作正常. Storage增加阿里云OSS支持: 在项目下利用composer安装 composer require jacobcyl/ali-oss- ...

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

    阿里OSS:好处就是,那是一套完整的体系,存储,数据库,CDN,服务器,阿里都可以给你全包.缺点,费用对于没有盈利的网站来说太高了,好像定位就是给那些高端客户使用的,而且CDN,OSS的流量是分开收费 ...

  5. Springboot+阿里云kafka踩坑实录

    场景描述:上文写到,不断接收数据并存放到OSS,现在要把数据存到MQ的kafka一份. springboot版本为1.5.9. 开工之前先阅读阿里云官方kafka消息接入说明:https://help ...

  6. ossfs挂载百度对象存储_阿里云对象存储OSS挂载工具

    前言 宝塔面板里有类似服务9.9一个月,愿意花钱的大佬们也不会搜到我这篇文章 不想花钱的小伙伴们就仔细看看下面我这篇文章吧 科普:linux常用命令: ls 查看当前目录下文件 安装及配置 下载:安装 ...

  7. 数据库自动备份并存储至阿里云OSS

    因为自己的服务器挂了一些服务并会产生一些比较有用的数据,而且最近发现服务器老被ddos攻击,所以就做了一些安全措施 安装安全狗软件 阿里云安全中心服务购买 最重要的也是本次要介绍的就是备份数据库, 本 ...

  8. 阿里播放器踩坑记录 进度条重构 video loadByUrl失效解决方案

    如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 文档地址:https://player.alicdn.com/aliplayer/index. ...

  9. 【阿里云OSS对象存储搭配CDN加速使用】

    阿里云OSS对象存储搭配CDN加速使用 什么是CDN? 为什么选择阿里云CDN? 按流量计费说明 CDN按流量计费费如下: OSS外网流出流量标准收费如下: 步骤一:准备工作 步骤二.开通CDN 涉及 ...

最新文章

  1. 《Engineering》评选2021年全球十大工程成就 | 中国工程院院刊
  2. .Net Framework 4.5.1 安装时遇到严重错误 问题的解决方法
  3. 使用WKWebView替换UIWebView
  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)实例化
  5. 2017年4月19日
  6. 恩布开源安卓手机IM,EntboostIM发布1.5.1版本
  7. spring的依赖注入的方式(待更新)
  8. 用 Python 实现电影订票系统 | 内附源码
  9. windows 生成ssh 密钥
  10. Maven项目引入JS,css等文件的问题
  11. js逆向巨潮mcode
  12. 微信小程序调用weUI库
  13. IPU相关知识(一)
  14. 神器,阿里巴巴Java代码检查插件
  15. Linux内核数据包格式
  16. cmd输入cl提示不是内部命令
  17. 字体与版式设计 字体设计让你的信息变独特
  18. 组态王网页服务器,组态王6.55WEB全新发布详细步骤
  19. linux 监听图形,Zabbix3.2+Grafana4.0实现可视化监控图形
  20. BDP FL PEG4 (4E) TCO,亲水性PEG间隔臂可以增加水溶性,2183473-16-5

热门文章

  1. 数据,源码防泄密解决方案
  2. python工具方法 10 h5py批量写入文件、读取文件,支持任意维度的数据
  3. mybatis 不确定结果集集_集集丨与小直男的日常(三)
  4. CSS基础语法和盒模型
  5. 混合现实手术规划模拟系统——阿里云资源+MR技术在医疗行业的典型应用
  6. 用Python在图片上添加文字
  7. c语言进程伪装,易语言程序伪装软件
  8. 老鹰:我要抓走倒数第K个小鸡
  9. pdf做成翻页电子书_想看书就别用手机了,电子书选购指南
  10. Weex实战分享|企鹅电竞Weex实践和性能优化