• 关于

    授权 oss

    的搜索结果

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:22 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:21 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:23 0 浏览量 回答数 0

阿里云新品发布会第118期:基于区块链技术的通信授权服务

打造用户可知可管可信的通信授权服务

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:20 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:21 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:22 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:22 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:21 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:20 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:22 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:21 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:22 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:22 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:21 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。 开发者的移动客户端(app或者网页应用),简称客户端:通过开发者提供的服务,间接使用OSS。 应用服务器:客户端交互的服务器,也是开发者的业务服务器。 阿里云STS:颁发临时凭证。 开发业务流程 临时凭证授权的上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取上传到OSS的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 说明 客户端不需要每次都向应用服务器请求授权,在第一次授权完成之后可以缓存STS返回的临时凭证直到超过失效时间。 STS提供了强大的权限控制功能,可以将客户端的访问权限限制到Object级别,从而实现不同客户端在OSS端上传的Object的完全隔离,极大提高了安全性。 更多信息请参见授权给第三方上传。 签名URL授权的上传和表单上传 如图所示:具体步骤如下: 客户端向应用服务器发出上传文件到OSS的请求。 应用服务器回复客户端,将上传凭证(签名URL或者表单)返回给客户端。 客户端获取上传到OSS的授权(签名URL或者表单),调用OSS提供的移动端SDK上传或者直接表单上传。 客户端成功上传数据到OSS。如果没有设置回调,则流程结束。如果设置了回调功能,OSS会调用相关的接口。 更多信息请参见授权给第三方上传。 临时凭证授权的下载 跟临时凭证授权的上传过程类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器向STS服务器请求一次,获取临时凭证。 应用服务器回复客户端,将临时凭证返回给客户端。 客户端获取下载OSS文件的授权(STS的AccessKey以及Token),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 和上传类似,客户端对于临时凭证也可以进行缓存从而提高访问速度。 STS同样也提供了精确到Object的下载权限控制,和上传权限控制结合在一起可以实现各移动端在OSS上存储空间的完全隔离。 签名URL授权的下载 跟签名URL授权的上传类似: 客户端向应用服务器发出下载OSS文件的请求。 应用服务器回复客户端,将签名URL返回给客户端。 客户端获取下载OSS文件的授权(签名URL),调用OSS提供的移动端SDK下载。 客户端成功从OSS下载文件。 说明 客户端不能存储开发者的AccessKey,只能获取应用服务器签名的URL或者是通过STS颁发的临时凭证(也就是STS的AccessKey和Token)。 最佳实践 快速搭建移动应用直传服务 快速搭建移动应用上传回调服务 权限控制 RAM和STS使用指南 功能使用参考 Android SDK上传文件 iOS SDK上传文件
2019-12-01 23:12:21 0 浏览量 回答数 0

问题

基于OSS的移动开发

开发架构图 典型的基于OSS的移动开发有四个组件: OSS:提供上传、下载、上传回调等功能。开发者的移动客户端(App或者网页应用),简称客户端:通过开...
青衫无名 2019-12-01 21:36:16 1022 浏览量 回答数 0

问题

OSS如何投递到RAM授权进阶?

本文是作为 快捷授权的补充,介绍细粒度Policy设置、父子账号Role授权等功能。 授权 Role 管理 通过快捷授权,OSS 用户主账号 B 默认创建的 AliyunLogDefaultRole 角色...
轩墨 2019-12-01 21:56:47 1327 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 发送访问OSS的请求 您可以直接使用OSS提供的RESTful API接口访问或者使用对API接口进行完整封装的SDK开发包。而每一次向OSS的请求根据当前Bucket权限和操作不同要求用户进行身份验证或者直接匿名访问。对OSS的资源访问的分类如下: 按访问者的角色可分为拥有者访问和第三方用户访问。这里的拥有者指的是Bucket的Owner,也称为开发者。第三方用户是指访问Bucket里资源的用户。 按访问者的身份信息可分为匿名访问和带签名访问。对于OSS来说,如果请求中没有携带任何和身份相关的信息即为匿名访问。带签名访问指的是按照OSS API文档中规定的在请求头部或者在请求URL中携带签名的相关信息。 AccessKey 类型 目前访问 OSS 使用的 AK(AccessKey)有三种类型,具体如下: 阿里云账号AccessKey 阿里云账号AK特指Bucket拥有者的AK,每个阿里云账号提供的AccessKey对拥有的资源有完全的权限。每个阿里云账号能够同时拥有不超过5个active或者inactive的AK对(AccessKeyId和AccessKeySecret)。 用户可以登录AccessKey管理控制台,申请新增或删除AK对。 每个AK对都有active/inactive两种状态。 Active 表明用户的 AK 处于激活状态,可以在身份验证的时候使用。 Inactive 表明用户的 AK 处于非激活状态,不能在身份验证的时候使用。 说明 请避免直接使用阿里云账户的 AccessKey。 RAM子账号AccessKey RAM (Resource Access Management) 是阿里云提供的资源访问控制服务。RAM账号AK指的是通过RAM被授权的AK。这组AK只能按照RAM定义的规则去访问Bucket里的资源。通过RAM,您可以集中管理您的用户(比如员工、系统或应用程序),以及控制用户可以访问您名下哪些资源的权限。比如能够限制您的用户只拥有对某一个Bucket的读权限。子账号是从属于主账号的,并且这些账号下不能拥有实际的任何资源,所有资源都属于主账号。 STS账号AccessKey STS(Security Token Service)是阿里云提供的临时访问凭证服务。STS账号AK指的是通过STS颁发的AK。这组AK只能按照STS定义的规则去访问Bucket里的资源。 身份验证具体实现 目前主要有三种身份验证方式: AK验证 RAM验证 STS验证 当用户以个人身份向OSS发送请求时,其身份验证的实现如下: 用户将发送的请求按照OSS指定的格式生成签名字符串。 用户使用AccessKeySecret对签名字符串进行加密产生验证码。 OSS收到请求以后,通过AccessKeyId找到对应的AccessKeySecret,以同样的方法提取签名字符串和验证码。 如果计算出来的验证码和提供的一样即认为该请求是有效的。 否则,OSS将拒绝处理这次请求,并返回HTTP 403错误。 对于用户来说可以直接使用OSS提供的SDK,配合不同类型的AccessKey即可实现不同的身份验证。 权限控制 针对存放在Bucket的Object的访问,OSS提供了多种权限控制,主要有: Bucket级别权限 Object级别权限 账号级别权限(RAM) 临时账号权限(STS) Bucket级别权限 Bucket权限类型 OSS提供ACL(Access Control List)权限控制方法,OSS ACL提供Bucket级别的权限访问控制,Bucket目前有三种访问权限:public-read-write,public-read和private,它们的含义如下: 权限值 中文名称 权限对访问者的限制 public-read-write 公共读写 任何人(包括匿名访问)都可以对该Bucket中的Object进行读/写/删除操作;所有这些操作产生的费用由该Bucket的Owner承担,请慎用该权限。 public-read 公共读,私有写 只有该Bucket的Owner或者授权对象可以对存放在其中的Object进行写/删除操作;任何人(包括匿名访问)可以对Object进行读操作。 private 私有读写 只有该Bucket的Owner或者授权对象可以对存放在其中的Object进行读/写/删除操作;其他人在未经授权的情况下无法访问该Bucket内的Object。 Bucket权限设定和读取方法 功能使用参考: API:Put BucketACL SDK:Java SDK-设置Bucket ACL 控制台:创建Bucket权限设置 API:Get BucketACL SDK:Java SDK-获取Bucket ACL Object级别权限 Object权限类型 OSS ACL也提供Object级别的权限访问控制。目前Object有四种访问权限:private, public-read, public-read-write, default。Put Object ACL操作通过Put请求中的“x-oss-object-acl”头来设置,这个操作只有Bucket Owner有权限执行。 权限值 中文名称 权限对访问者的限制 public-read-write 公共读写 该ACL表明某个Object是公共读写资源,即所有用户拥有对该Object的读写权限。 public-read 公共读,私有写 该ACL表明某个Object是公共读资源,即非Object Owner只有该Object的读权限,而Object Owner拥有该Object的读写权限。 private 私有读写 该ACL表明某个Object是私有资源,即只有该Object的Owner拥有该Object的读写权限,其他的用户没有权限操作该Object。 default 默认权限 该ACL表明某个Object是遵循Bucket读写权限的资源,即Bucket是什么权限,Object就是什么权限。 说明 如果没有设置Object的权限,即Object的ACL为default,Object的权限和Bucket权限一致。 如果设置了Object的权限,Object的权限大于Bucket权限。举个例子,如果设置了Object的权限是public-read,无论Bucket是什么权限,该Object都可以被身份验证访问和匿名访问。 Object权限设定和读取方法 功能使用参考: API:Put Object ACL SDK:Java SDK-ObjectACL 中设定Object ACL API:Get Object ACL SDK:Java SDK-ObjectACL 中读取Object ACL 账号级别权限(RAM) 使用场景 如果您购买了云资源,您的组织里有多个用户需要使用这些云资源,这些用户只能共享使用您的云账号AccessKey。这里有两个问题: 您的密钥由多人共享,泄露的风险很高。 您无法控制特定用户能访问哪些资源(比如Bucket)的权限。 解决方法:在您的阿里云账号下面,通过RAM可以创建具有自己AccessKey的子用户。您的阿里云账号被称为主账号,创建出来的账号被称为子账号,使用子账号的AccessKey只能使用主账号授权的操作和资源。 具体实现 有关RAM详情,请参考RAM用户手册。 对于授权中需要的Policy的配置方式可以参考本章最后一节:RAM和STS授权策略(Policy)配置。 临时账号权限(STS) 使用场景 对于您本地身份系统所管理的用户,比如您的App的用户、您的企业本地账号、第三方App,也有直接访问OSS资源的可能,将这部分用户称为联盟用户。此外,用户还可以是您创建的能访问您的阿里云资源的应用程序。 对于这部分联盟用户,通过阿里云STS (Security Token Service) 服务为阿里云账号(或RAM用户)提供短期访问权限管理。您不需要透露云账号(或RAM用户)的长期密钥(如登录密码、AccessKey),只需要生成一个短期访问凭证给联盟用户使用即可。这个凭证的访问权限及有效期限都可以由您自定义。您不需要关心权限撤销问题,访问凭证过期后会自动失效。 用户通过STS生成的凭证包括安全令牌(SecurityToken)、临时访问密钥(AccessKeyId, AccessKeySecret)。使用AccessKey方法与您在使用阿里云账户或RAM用户AccessKey发送请求时的方法相同。此外还需要注意的是在每个向OSS发送的请求中必须携带安全令牌。 具体实现 STS安全令牌、角色管理和使用相关内容详情,请参考RAM用户指南中的角色管理。关键是调用STS服务接口AssumeRole来获取有效访问凭证即可,也可以直接使用STS SDK来调用该方法。 RAM和STS应用场景实践 对于不同的应用场景,涉及到的访问身份验证方式可能存在差异。下面以几种典型的应用场景来说明访问身份验证中几种使用方式。 以一个移动App举例。假设您是一个移动App开发者,打算使用阿里云OSS服务来保存App的终端用户数据,并且要保证每个App用户之间的数据隔离,防止一个App用户获取到其它App用户的数据。 方式一:使用AppServer来做数据中转和数据隔离如上图所示,您需要开发一个AppServer。只有AppServer能访问云服务,ClientApp的每次读写数据都需要通过AppServer,AppServer来保证不同用户数据的隔离访问。 对于该种使用方式,使用阿里云账号或者RAM账号提供的密钥来进行签名验证访问。建议您尽量不要直接使用阿里云账号(主账号)的密钥访问OSS,避免出现安全问题。 方式二:使用STS让用户直接访问OSS STS方案描述如下图所示:方案的详细描述如下: App用户登录。App用户和云账号无关,它是App的终端用户,AppServer支持App用户登录。对于每个有效的App用户来说,需要AppServer能定义出每个App用户的最小访问权限。 AppServer请求STS服务获取一个安全令牌(SecurityToken)。在调用STS之前,AppServer需要确定App用户的最小访问权限(用Policy语法描述)以及授权的过期时间。然后通过扮演角色(AssumeRole)来获取一个代表角色身份的安全令牌。 STS返回给AppServer一个有效的访问凭证,包括一个安全令牌(SecurityToken)、临时访问密钥(AccessKeyId, AccessKeySecret)以及过期时间。 AppServer将访问凭证返回给ClientApp。ClientApp可以缓存这个凭证。当凭证失效时,ClientApp需要向AppServer申请新的有效访问凭证。比如,访问凭证有效期为1小时,那么ClientApp可以每30分钟向AppServer请求更新访问凭证。 ClientApp使用本地缓存的访问凭证去请求Aliyun Service API。云服务会感知STS访问凭证,并会依赖STS服务来验证访问凭证,正确响应用户请求。 RAM和STS授权策略(Policy)配置 对于RAM或者STS授权中使用Policy,详细规则如下。 示例 先看下面的一个Policy示例: { "Version": "1", "Statement": [ { "Action": [ "oss:GetBucketAcl", "oss:ListObjects" ], "Resource": [ "acs:oss:*:1775305056529849:mybucket" ], "Effect": "Allow", "Condition": { "StringEquals": { "acs:UserAgent": "java-sdk", "oss:Prefix": "foo" }, "IpAddress": { "acs:SourceIp": "192.168.0.1" } } }, { "Action": [ "oss:PutObject", "oss:GetObject", "oss:DeleteObject" ], "Resource": [ "acs:oss:*:1775305056529849:mybucket/file*" ], "Effect": "Allow", "Condition": { "IpAddress": { "acs:SourceIp": "192.168.0.1" } } } ] } 这是一个授权的Policy,用户用这样的一个Policy通过RAM或STS服务向其他用户授权。Policy当中有一个Statement(一条Policy当中可以有多条Statement)。Statement里面规定了相应的Action、Resource、Effect和Condition。 这条Policy把用户自己名下的mybucket和mybucket/file*这些资源授权给相应的用户,并且支持GetBucketAcl、GetBucket、PutObject、GetObject和DeleteObject这几种操作。Condition中的条件表示UserAgent为java-sdk,源IP为192.168.0.1的时候鉴权才能通过,被授权的用户才能访问相关的资源。Prefix这个Condition是在GetBucket(ListObjects)的时候起作用的,关于这个字段的解释详见OSS的API文档。 配置细则 Version Version定义了Policy的版本,本文档中sw2q的配置方式,设置为1。 Statement 通过Statement描述授权语义,其中可以根据业务场景包含多条语义,每条包含对Action、Effect、Resource和Condition的描述。每次请求系统会逐条依次匹配检查,所有匹配成功的Statement会根据Effect的设置不同分为通过(Allow)、禁止(Deny),其中禁止(Deny)的优先。如果匹配成功的都为通过,该条请求即鉴权通过。如果匹配成功有一条禁止,或者没有任何条目匹配成功,该条请求被禁止访问。 Action Action分为三大类:Service级别操作,对应的是GetService操作,用来列出所有属于该用户的Bucket列表。 Bucket级别操作,对应类似于oss:PutBucketAcl、oss:GetBucketLocation之类的操作,操作的对象是Bucket,它们的名称和相应的接口名称一一对应。 Object级别操作,分为oss:GetObject、oss:PutObject、oss:DeleteObject和oss:AbortMultipartUpload,操作对象是Object。 如想授权某一类的Object的操作,可以选择这几种的一种或几种。另外,所有的Action前面都必须加上oss:,如上面例子所示。Action是一个列表,可以有多个Action。具体的Action和API接口的对应关系如下: Service级别 API Action GetService(ListBuckets) oss:ListBuckets Bucket级别 API Action PutBucket oss:PutBucket GetBucket(ListObjects) oss:ListObjects PutBucketAcl oss:PutBucketAcl DeleteBucket oss:DeleteBucket GetBucketLocation oss:GetBucketLocation GetBucketAcl oss:GetBucketAcl GetBucketLogging oss:GetBucketLogging PutBucketLogging oss:PutBucketLogging DeleteBucketLogging oss:DeleteBucketLogging GetBucketWebsite oss:GetBucketWebsite PutBucketWebsite oss:PutBucketWebsite DeleteBucketWebsite oss:DeleteBucketWebsite GetBucketReferer oss:GetBucketReferer PutBucketReferer oss:PutBucketReferer GetBucketLifecycle oss:GetBucketLifecycle PutBucketLifecycle oss:PutBucketLifecycle DeleteBucketLifecycle oss:DeleteBucketLifecycle ListMultipartUploads oss:ListMultipartUploads PutBucketCors oss:PutBucketCors GetBucketCors oss:GetBucketCors DeleteBucketCors oss:DeleteBucketCors PutBucketReplication oss:PutBucketReplication GetBucketReplication oss:GetBucketReplication DeleteBucketReplication oss:DeleteBucketReplication GetBucketReplicationLocation oss:GetBucketReplicationLocation GetBucketReplicationProgress oss:GetBucketReplicationProgress Object级别 API Action GetObject oss:GetObject HeadObject oss:GetObject PutObject oss:PutObject PostObject oss:PutObject InitiateMultipartUpload oss:PutObject UploadPart oss:PutObject CompleteMultipart oss:PutObject DeleteObject oss:DeleteObject DeleteMultipartObjects oss:DeleteObject AbortMultipartUpload oss:AbortMultipartUpload ListParts oss:ListParts CopyObject oss:GetObject,oss:PutObject UploadPartCopy oss:GetObject,oss:PutObject AppendObject oss:PutObject GetObjectAcl oss:GetObjectAcl PutObjectAcl oss:PutObjectAcl Resource Resource指代的是OSS上面的某个具体的资源或者某些资源(支持*通配),resource的规则是acs:oss:{region}:{bucket_owner}:{bucket_name}/{object_name}。对于所有Bucket级别的操作来说不需要最后的斜杠和{object_name},即acs:oss:{region}:{bucket_owner}:{bucket_name}。Resource也是一个列表,可以有多个Resource。其中的region字段暂时不做支持,设置为*。 Effect Effect代表本条的Statement的授权的结果,分为Allow和Deny,分别指代通过和禁止。多条Statement同时匹配成功时,禁止(Deny)的优先级更高。 例如,期望禁止用户对某一目录进行删除,但对于其他文件有全部权限: { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:*" ], "Resource": [ "acs:oss:*:*:bucketname" ] }, { "Effect": "Deny", "Action": [ "oss:DeleteObject" ], "Resource": [ "acs:oss:*:*:bucketname/index/*", ] } ] } Condition Condition代表Policy授权的一些条件,上面的示例里面可以设置对于acs:UserAgent的检查、acs:SourceIp的检查、还有oss:Prefix这项用来在GetBucket的时候对资源进行限制。 OSS支持的Condition如下: condition 功能 合法取值 acs:SourceIp 指定ip网段 普通的ip,支持*通配 acs:UserAgent 指定http useragent头 字符串 acs:CurrentTime 指定合法的访问时间 ISO8601格式 acs:SecureTransport 是否是https协议 “true”或者”false” oss:Prefix 用作ListObjects时的prefix 合法的object name 更多示例 针对具体场景更多的授权策略配置示例,可以参考教程示例:控制存储空间和文件夹的访问权限和OSS授权常见问题。 Policy在线图形化便捷配置工具,请单击这里。 最佳实践 RAM和STS使用指南
2019-12-01 23:12:47 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 发送访问OSS的请求 您可以直接使用OSS提供的RESTful API接口访问或者使用对API接口进行完整封装的SDK开发包。而每一次向OSS的请求根据当前Bucket权限和操作不同要求用户进行身份验证或者直接匿名访问。对OSS的资源访问的分类如下: 按访问者的角色可分为拥有者访问和第三方用户访问。这里的拥有者指的是Bucket的Owner,也称为开发者。第三方用户是指访问Bucket里资源的用户。 按访问者的身份信息可分为匿名访问和带签名访问。对于OSS来说,如果请求中没有携带任何和身份相关的信息即为匿名访问。带签名访问指的是按照OSS API文档中规定的在请求头部或者在请求URL中携带签名的相关信息。 AccessKey 类型 目前访问 OSS 使用的 AK(AccessKey)有三种类型,具体如下: 阿里云账号AccessKey 阿里云账号AK特指Bucket拥有者的AK,每个阿里云账号提供的AccessKey对拥有的资源有完全的权限。每个阿里云账号能够同时拥有不超过5个active或者inactive的AK对(AccessKeyId和AccessKeySecret)。 用户可以登录AccessKey管理控制台,申请新增或删除AK对。 每个AK对都有active/inactive两种状态。 Active 表明用户的 AK 处于激活状态,可以在身份验证的时候使用。 Inactive 表明用户的 AK 处于非激活状态,不能在身份验证的时候使用。 说明 请避免直接使用阿里云账户的 AccessKey。 RAM子账号AccessKey RAM (Resource Access Management) 是阿里云提供的资源访问控制服务。RAM账号AK指的是通过RAM被授权的AK。这组AK只能按照RAM定义的规则去访问Bucket里的资源。通过RAM,您可以集中管理您的用户(比如员工、系统或应用程序),以及控制用户可以访问您名下哪些资源的权限。比如能够限制您的用户只拥有对某一个Bucket的读权限。子账号是从属于主账号的,并且这些账号下不能拥有实际的任何资源,所有资源都属于主账号。 STS账号AccessKey STS(Security Token Service)是阿里云提供的临时访问凭证服务。STS账号AK指的是通过STS颁发的AK。这组AK只能按照STS定义的规则去访问Bucket里的资源。 身份验证具体实现 目前主要有三种身份验证方式: AK验证 RAM验证 STS验证 当用户以个人身份向OSS发送请求时,其身份验证的实现如下: 用户将发送的请求按照OSS指定的格式生成签名字符串。 用户使用AccessKeySecret对签名字符串进行加密产生验证码。 OSS收到请求以后,通过AccessKeyId找到对应的AccessKeySecret,以同样的方法提取签名字符串和验证码。 如果计算出来的验证码和提供的一样即认为该请求是有效的。 否则,OSS将拒绝处理这次请求,并返回HTTP 403错误。 对于用户来说可以直接使用OSS提供的SDK,配合不同类型的AccessKey即可实现不同的身份验证。 权限控制 针对存放在Bucket的Object的访问,OSS提供了多种权限控制,主要有: Bucket级别权限 Object级别权限 账号级别权限(RAM) 临时账号权限(STS) Bucket级别权限 Bucket权限类型 OSS提供ACL(Access Control List)权限控制方法,OSS ACL提供Bucket级别的权限访问控制,Bucket目前有三种访问权限:public-read-write,public-read和private,它们的含义如下: 权限值 中文名称 权限对访问者的限制 public-read-write 公共读写 任何人(包括匿名访问)都可以对该Bucket中的Object进行读/写/删除操作;所有这些操作产生的费用由该Bucket的Owner承担,请慎用该权限。 public-read 公共读,私有写 只有该Bucket的Owner或者授权对象可以对存放在其中的Object进行写/删除操作;任何人(包括匿名访问)可以对Object进行读操作。 private 私有读写 只有该Bucket的Owner或者授权对象可以对存放在其中的Object进行读/写/删除操作;其他人在未经授权的情况下无法访问该Bucket内的Object。 Bucket权限设定和读取方法 功能使用参考: API:Put BucketACL SDK:Java SDK-设置Bucket ACL 控制台:创建Bucket权限设置 API:Get BucketACL SDK:Java SDK-获取Bucket ACL Object级别权限 Object权限类型 OSS ACL也提供Object级别的权限访问控制。目前Object有四种访问权限:private, public-read, public-read-write, default。Put Object ACL操作通过Put请求中的“x-oss-object-acl”头来设置,这个操作只有Bucket Owner有权限执行。 权限值 中文名称 权限对访问者的限制 public-read-write 公共读写 该ACL表明某个Object是公共读写资源,即所有用户拥有对该Object的读写权限。 public-read 公共读,私有写 该ACL表明某个Object是公共读资源,即非Object Owner只有该Object的读权限,而Object Owner拥有该Object的读写权限。 private 私有读写 该ACL表明某个Object是私有资源,即只有该Object的Owner拥有该Object的读写权限,其他的用户没有权限操作该Object。 default 默认权限 该ACL表明某个Object是遵循Bucket读写权限的资源,即Bucket是什么权限,Object就是什么权限。 说明 如果没有设置Object的权限,即Object的ACL为default,Object的权限和Bucket权限一致。 如果设置了Object的权限,Object的权限大于Bucket权限。举个例子,如果设置了Object的权限是public-read,无论Bucket是什么权限,该Object都可以被身份验证访问和匿名访问。 Object权限设定和读取方法 功能使用参考: API:Put Object ACL SDK:Java SDK-ObjectACL 中设定Object ACL API:Get Object ACL SDK:Java SDK-ObjectACL 中读取Object ACL 账号级别权限(RAM) 使用场景 如果您购买了云资源,您的组织里有多个用户需要使用这些云资源,这些用户只能共享使用您的云账号AccessKey。这里有两个问题: 您的密钥由多人共享,泄露的风险很高。 您无法控制特定用户能访问哪些资源(比如Bucket)的权限。 解决方法:在您的阿里云账号下面,通过RAM可以创建具有自己AccessKey的子用户。您的阿里云账号被称为主账号,创建出来的账号被称为子账号,使用子账号的AccessKey只能使用主账号授权的操作和资源。 具体实现 有关RAM详情,请参考RAM用户手册。 对于授权中需要的Policy的配置方式可以参考本章最后一节:RAM和STS授权策略(Policy)配置。 临时账号权限(STS) 使用场景 对于您本地身份系统所管理的用户,比如您的App的用户、您的企业本地账号、第三方App,也有直接访问OSS资源的可能,将这部分用户称为联盟用户。此外,用户还可以是您创建的能访问您的阿里云资源的应用程序。 对于这部分联盟用户,通过阿里云STS (Security Token Service) 服务为阿里云账号(或RAM用户)提供短期访问权限管理。您不需要透露云账号(或RAM用户)的长期密钥(如登录密码、AccessKey),只需要生成一个短期访问凭证给联盟用户使用即可。这个凭证的访问权限及有效期限都可以由您自定义。您不需要关心权限撤销问题,访问凭证过期后会自动失效。 用户通过STS生成的凭证包括安全令牌(SecurityToken)、临时访问密钥(AccessKeyId, AccessKeySecret)。使用AccessKey方法与您在使用阿里云账户或RAM用户AccessKey发送请求时的方法相同。此外还需要注意的是在每个向OSS发送的请求中必须携带安全令牌。 具体实现 STS安全令牌、角色管理和使用相关内容详情,请参考RAM用户指南中的角色管理。关键是调用STS服务接口AssumeRole来获取有效访问凭证即可,也可以直接使用STS SDK来调用该方法。 RAM和STS应用场景实践 对于不同的应用场景,涉及到的访问身份验证方式可能存在差异。下面以几种典型的应用场景来说明访问身份验证中几种使用方式。 以一个移动App举例。假设您是一个移动App开发者,打算使用阿里云OSS服务来保存App的终端用户数据,并且要保证每个App用户之间的数据隔离,防止一个App用户获取到其它App用户的数据。 方式一:使用AppServer来做数据中转和数据隔离如上图所示,您需要开发一个AppServer。只有AppServer能访问云服务,ClientApp的每次读写数据都需要通过AppServer,AppServer来保证不同用户数据的隔离访问。 对于该种使用方式,使用阿里云账号或者RAM账号提供的密钥来进行签名验证访问。建议您尽量不要直接使用阿里云账号(主账号)的密钥访问OSS,避免出现安全问题。 方式二:使用STS让用户直接访问OSS STS方案描述如下图所示:方案的详细描述如下: App用户登录。App用户和云账号无关,它是App的终端用户,AppServer支持App用户登录。对于每个有效的App用户来说,需要AppServer能定义出每个App用户的最小访问权限。 AppServer请求STS服务获取一个安全令牌(SecurityToken)。在调用STS之前,AppServer需要确定App用户的最小访问权限(用Policy语法描述)以及授权的过期时间。然后通过扮演角色(AssumeRole)来获取一个代表角色身份的安全令牌。 STS返回给AppServer一个有效的访问凭证,包括一个安全令牌(SecurityToken)、临时访问密钥(AccessKeyId, AccessKeySecret)以及过期时间。 AppServer将访问凭证返回给ClientApp。ClientApp可以缓存这个凭证。当凭证失效时,ClientApp需要向AppServer申请新的有效访问凭证。比如,访问凭证有效期为1小时,那么ClientApp可以每30分钟向AppServer请求更新访问凭证。 ClientApp使用本地缓存的访问凭证去请求Aliyun Service API。云服务会感知STS访问凭证,并会依赖STS服务来验证访问凭证,正确响应用户请求。 RAM和STS授权策略(Policy)配置 对于RAM或者STS授权中使用Policy,详细规则如下。 示例 先看下面的一个Policy示例: { "Version": "1", "Statement": [ { "Action": [ "oss:GetBucketAcl", "oss:ListObjects" ], "Resource": [ "acs:oss:*:1775305056529849:mybucket" ], "Effect": "Allow", "Condition": { "StringEquals": { "acs:UserAgent": "java-sdk", "oss:Prefix": "foo" }, "IpAddress": { "acs:SourceIp": "192.168.0.1" } } }, { "Action": [ "oss:PutObject", "oss:GetObject", "oss:DeleteObject" ], "Resource": [ "acs:oss:*:1775305056529849:mybucket/file*" ], "Effect": "Allow", "Condition": { "IpAddress": { "acs:SourceIp": "192.168.0.1" } } } ] } 这是一个授权的Policy,用户用这样的一个Policy通过RAM或STS服务向其他用户授权。Policy当中有一个Statement(一条Policy当中可以有多条Statement)。Statement里面规定了相应的Action、Resource、Effect和Condition。 这条Policy把用户自己名下的mybucket和mybucket/file*这些资源授权给相应的用户,并且支持GetBucketAcl、GetBucket、PutObject、GetObject和DeleteObject这几种操作。Condition中的条件表示UserAgent为java-sdk,源IP为192.168.0.1的时候鉴权才能通过,被授权的用户才能访问相关的资源。Prefix这个Condition是在GetBucket(ListObjects)的时候起作用的,关于这个字段的解释详见OSS的API文档。 配置细则 Version Version定义了Policy的版本,本文档中sw2q的配置方式,设置为1。 Statement 通过Statement描述授权语义,其中可以根据业务场景包含多条语义,每条包含对Action、Effect、Resource和Condition的描述。每次请求系统会逐条依次匹配检查,所有匹配成功的Statement会根据Effect的设置不同分为通过(Allow)、禁止(Deny),其中禁止(Deny)的优先。如果匹配成功的都为通过,该条请求即鉴权通过。如果匹配成功有一条禁止,或者没有任何条目匹配成功,该条请求被禁止访问。 Action Action分为三大类:Service级别操作,对应的是GetService操作,用来列出所有属于该用户的Bucket列表。 Bucket级别操作,对应类似于oss:PutBucketAcl、oss:GetBucketLocation之类的操作,操作的对象是Bucket,它们的名称和相应的接口名称一一对应。 Object级别操作,分为oss:GetObject、oss:PutObject、oss:DeleteObject和oss:AbortMultipartUpload,操作对象是Object。 如想授权某一类的Object的操作,可以选择这几种的一种或几种。另外,所有的Action前面都必须加上oss:,如上面例子所示。Action是一个列表,可以有多个Action。具体的Action和API接口的对应关系如下: Service级别 API Action GetService(ListBuckets) oss:ListBuckets Bucket级别 API Action PutBucket oss:PutBucket GetBucket(ListObjects) oss:ListObjects PutBucketAcl oss:PutBucketAcl DeleteBucket oss:DeleteBucket GetBucketLocation oss:GetBucketLocation GetBucketAcl oss:GetBucketAcl GetBucketLogging oss:GetBucketLogging PutBucketLogging oss:PutBucketLogging DeleteBucketLogging oss:DeleteBucketLogging GetBucketWebsite oss:GetBucketWebsite PutBucketWebsite oss:PutBucketWebsite DeleteBucketWebsite oss:DeleteBucketWebsite GetBucketReferer oss:GetBucketReferer PutBucketReferer oss:PutBucketReferer GetBucketLifecycle oss:GetBucketLifecycle PutBucketLifecycle oss:PutBucketLifecycle DeleteBucketLifecycle oss:DeleteBucketLifecycle ListMultipartUploads oss:ListMultipartUploads PutBucketCors oss:PutBucketCors GetBucketCors oss:GetBucketCors DeleteBucketCors oss:DeleteBucketCors PutBucketReplication oss:PutBucketReplication GetBucketReplication oss:GetBucketReplication DeleteBucketReplication oss:DeleteBucketReplication GetBucketReplicationLocation oss:GetBucketReplicationLocation GetBucketReplicationProgress oss:GetBucketReplicationProgress Object级别 API Action GetObject oss:GetObject HeadObject oss:GetObject PutObject oss:PutObject PostObject oss:PutObject InitiateMultipartUpload oss:PutObject UploadPart oss:PutObject CompleteMultipart oss:PutObject DeleteObject oss:DeleteObject DeleteMultipartObjects oss:DeleteObject AbortMultipartUpload oss:AbortMultipartUpload ListParts oss:ListParts CopyObject oss:GetObject,oss:PutObject UploadPartCopy oss:GetObject,oss:PutObject AppendObject oss:PutObject GetObjectAcl oss:GetObjectAcl PutObjectAcl oss:PutObjectAcl Resource Resource指代的是OSS上面的某个具体的资源或者某些资源(支持*通配),resource的规则是acs:oss:{region}:{bucket_owner}:{bucket_name}/{object_name}。对于所有Bucket级别的操作来说不需要最后的斜杠和{object_name},即acs:oss:{region}:{bucket_owner}:{bucket_name}。Resource也是一个列表,可以有多个Resource。其中的region字段暂时不做支持,设置为*。 Effect Effect代表本条的Statement的授权的结果,分为Allow和Deny,分别指代通过和禁止。多条Statement同时匹配成功时,禁止(Deny)的优先级更高。 例如,期望禁止用户对某一目录进行删除,但对于其他文件有全部权限: { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:*" ], "Resource": [ "acs:oss:*:*:bucketname" ] }, { "Effect": "Deny", "Action": [ "oss:DeleteObject" ], "Resource": [ "acs:oss:*:*:bucketname/index/*", ] } ] } Condition Condition代表Policy授权的一些条件,上面的示例里面可以设置对于acs:UserAgent的检查、acs:SourceIp的检查、还有oss:Prefix这项用来在GetBucket的时候对资源进行限制。 OSS支持的Condition如下: condition 功能 合法取值 acs:SourceIp 指定ip网段 普通的ip,支持*通配 acs:UserAgent 指定http useragent头 字符串 acs:CurrentTime 指定合法的访问时间 ISO8601格式 acs:SecureTransport 是否是https协议 “true”或者”false” oss:Prefix 用作ListObjects时的prefix 合法的object name 更多示例 针对具体场景更多的授权策略配置示例,可以参考教程示例:控制存储空间和文件夹的访问权限和OSS授权常见问题。 Policy在线图形化便捷配置工具,请单击这里。 最佳实践 RAM和STS使用指南
2019-12-01 23:12:47 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 发送访问OSS的请求 您可以直接使用OSS提供的RESTful API接口访问或者使用对API接口进行完整封装的SDK开发包。而每一次向OSS的请求根据当前Bucket权限和操作不同要求用户进行身份验证或者直接匿名访问。对OSS的资源访问的分类如下: 按访问者的角色可分为拥有者访问和第三方用户访问。这里的拥有者指的是Bucket的Owner,也称为开发者。第三方用户是指访问Bucket里资源的用户。 按访问者的身份信息可分为匿名访问和带签名访问。对于OSS来说,如果请求中没有携带任何和身份相关的信息即为匿名访问。带签名访问指的是按照OSS API文档中规定的在请求头部或者在请求URL中携带签名的相关信息。 AccessKey 类型 目前访问 OSS 使用的 AK(AccessKey)有三种类型,具体如下: 阿里云账号AccessKey 阿里云账号AK特指Bucket拥有者的AK,每个阿里云账号提供的AccessKey对拥有的资源有完全的权限。每个阿里云账号能够同时拥有不超过5个active或者inactive的AK对(AccessKeyId和AccessKeySecret)。 用户可以登录AccessKey管理控制台,申请新增或删除AK对。 每个AK对都有active/inactive两种状态。 Active 表明用户的 AK 处于激活状态,可以在身份验证的时候使用。 Inactive 表明用户的 AK 处于非激活状态,不能在身份验证的时候使用。 说明 请避免直接使用阿里云账户的 AccessKey。 RAM子账号AccessKey RAM (Resource Access Management) 是阿里云提供的资源访问控制服务。RAM账号AK指的是通过RAM被授权的AK。这组AK只能按照RAM定义的规则去访问Bucket里的资源。通过RAM,您可以集中管理您的用户(比如员工、系统或应用程序),以及控制用户可以访问您名下哪些资源的权限。比如能够限制您的用户只拥有对某一个Bucket的读权限。子账号是从属于主账号的,并且这些账号下不能拥有实际的任何资源,所有资源都属于主账号。 STS账号AccessKey STS(Security Token Service)是阿里云提供的临时访问凭证服务。STS账号AK指的是通过STS颁发的AK。这组AK只能按照STS定义的规则去访问Bucket里的资源。 身份验证具体实现 目前主要有三种身份验证方式: AK验证 RAM验证 STS验证 当用户以个人身份向OSS发送请求时,其身份验证的实现如下: 用户将发送的请求按照OSS指定的格式生成签名字符串。 用户使用AccessKeySecret对签名字符串进行加密产生验证码。 OSS收到请求以后,通过AccessKeyId找到对应的AccessKeySecret,以同样的方法提取签名字符串和验证码。 如果计算出来的验证码和提供的一样即认为该请求是有效的。 否则,OSS将拒绝处理这次请求,并返回HTTP 403错误。 对于用户来说可以直接使用OSS提供的SDK,配合不同类型的AccessKey即可实现不同的身份验证。 权限控制 针对存放在Bucket的Object的访问,OSS提供了多种权限控制,主要有: Bucket级别权限 Object级别权限 账号级别权限(RAM) 临时账号权限(STS) Bucket级别权限 Bucket权限类型 OSS提供ACL(Access Control List)权限控制方法,OSS ACL提供Bucket级别的权限访问控制,Bucket目前有三种访问权限:public-read-write,public-read和private,它们的含义如下: 权限值 中文名称 权限对访问者的限制 public-read-write 公共读写 任何人(包括匿名访问)都可以对该Bucket中的Object进行读/写/删除操作;所有这些操作产生的费用由该Bucket的Owner承担,请慎用该权限。 public-read 公共读,私有写 只有该Bucket的Owner或者授权对象可以对存放在其中的Object进行写/删除操作;任何人(包括匿名访问)可以对Object进行读操作。 private 私有读写 只有该Bucket的Owner或者授权对象可以对存放在其中的Object进行读/写/删除操作;其他人在未经授权的情况下无法访问该Bucket内的Object。 Bucket权限设定和读取方法 功能使用参考: API:Put BucketACL SDK:Java SDK-设置Bucket ACL 控制台:创建Bucket权限设置 API:Get BucketACL SDK:Java SDK-获取Bucket ACL Object级别权限 Object权限类型 OSS ACL也提供Object级别的权限访问控制。目前Object有四种访问权限:private, public-read, public-read-write, default。Put Object ACL操作通过Put请求中的“x-oss-object-acl”头来设置,这个操作只有Bucket Owner有权限执行。 权限值 中文名称 权限对访问者的限制 public-read-write 公共读写 该ACL表明某个Object是公共读写资源,即所有用户拥有对该Object的读写权限。 public-read 公共读,私有写 该ACL表明某个Object是公共读资源,即非Object Owner只有该Object的读权限,而Object Owner拥有该Object的读写权限。 private 私有读写 该ACL表明某个Object是私有资源,即只有该Object的Owner拥有该Object的读写权限,其他的用户没有权限操作该Object。 default 默认权限 该ACL表明某个Object是遵循Bucket读写权限的资源,即Bucket是什么权限,Object就是什么权限。 说明 如果没有设置Object的权限,即Object的ACL为default,Object的权限和Bucket权限一致。 如果设置了Object的权限,Object的权限大于Bucket权限。举个例子,如果设置了Object的权限是public-read,无论Bucket是什么权限,该Object都可以被身份验证访问和匿名访问。 Object权限设定和读取方法 功能使用参考: API:Put Object ACL SDK:Java SDK-ObjectACL 中设定Object ACL API:Get Object ACL SDK:Java SDK-ObjectACL 中读取Object ACL 账号级别权限(RAM) 使用场景 如果您购买了云资源,您的组织里有多个用户需要使用这些云资源,这些用户只能共享使用您的云账号AccessKey。这里有两个问题: 您的密钥由多人共享,泄露的风险很高。 您无法控制特定用户能访问哪些资源(比如Bucket)的权限。 解决方法:在您的阿里云账号下面,通过RAM可以创建具有自己AccessKey的子用户。您的阿里云账号被称为主账号,创建出来的账号被称为子账号,使用子账号的AccessKey只能使用主账号授权的操作和资源。 具体实现 有关RAM详情,请参考RAM用户手册。 对于授权中需要的Policy的配置方式可以参考本章最后一节:RAM和STS授权策略(Policy)配置。 临时账号权限(STS) 使用场景 对于您本地身份系统所管理的用户,比如您的App的用户、您的企业本地账号、第三方App,也有直接访问OSS资源的可能,将这部分用户称为联盟用户。此外,用户还可以是您创建的能访问您的阿里云资源的应用程序。 对于这部分联盟用户,通过阿里云STS (Security Token Service) 服务为阿里云账号(或RAM用户)提供短期访问权限管理。您不需要透露云账号(或RAM用户)的长期密钥(如登录密码、AccessKey),只需要生成一个短期访问凭证给联盟用户使用即可。这个凭证的访问权限及有效期限都可以由您自定义。您不需要关心权限撤销问题,访问凭证过期后会自动失效。 用户通过STS生成的凭证包括安全令牌(SecurityToken)、临时访问密钥(AccessKeyId, AccessKeySecret)。使用AccessKey方法与您在使用阿里云账户或RAM用户AccessKey发送请求时的方法相同。此外还需要注意的是在每个向OSS发送的请求中必须携带安全令牌。 具体实现 STS安全令牌、角色管理和使用相关内容详情,请参考RAM用户指南中的角色管理。关键是调用STS服务接口AssumeRole来获取有效访问凭证即可,也可以直接使用STS SDK来调用该方法。 RAM和STS应用场景实践 对于不同的应用场景,涉及到的访问身份验证方式可能存在差异。下面以几种典型的应用场景来说明访问身份验证中几种使用方式。 以一个移动App举例。假设您是一个移动App开发者,打算使用阿里云OSS服务来保存App的终端用户数据,并且要保证每个App用户之间的数据隔离,防止一个App用户获取到其它App用户的数据。 方式一:使用AppServer来做数据中转和数据隔离如上图所示,您需要开发一个AppServer。只有AppServer能访问云服务,ClientApp的每次读写数据都需要通过AppServer,AppServer来保证不同用户数据的隔离访问。 对于该种使用方式,使用阿里云账号或者RAM账号提供的密钥来进行签名验证访问。建议您尽量不要直接使用阿里云账号(主账号)的密钥访问OSS,避免出现安全问题。 方式二:使用STS让用户直接访问OSS STS方案描述如下图所示:方案的详细描述如下: App用户登录。App用户和云账号无关,它是App的终端用户,AppServer支持App用户登录。对于每个有效的App用户来说,需要AppServer能定义出每个App用户的最小访问权限。 AppServer请求STS服务获取一个安全令牌(SecurityToken)。在调用STS之前,AppServer需要确定App用户的最小访问权限(用Policy语法描述)以及授权的过期时间。然后通过扮演角色(AssumeRole)来获取一个代表角色身份的安全令牌。 STS返回给AppServer一个有效的访问凭证,包括一个安全令牌(SecurityToken)、临时访问密钥(AccessKeyId, AccessKeySecret)以及过期时间。 AppServer将访问凭证返回给ClientApp。ClientApp可以缓存这个凭证。当凭证失效时,ClientApp需要向AppServer申请新的有效访问凭证。比如,访问凭证有效期为1小时,那么ClientApp可以每30分钟向AppServer请求更新访问凭证。 ClientApp使用本地缓存的访问凭证去请求Aliyun Service API。云服务会感知STS访问凭证,并会依赖STS服务来验证访问凭证,正确响应用户请求。 RAM和STS授权策略(Policy)配置 对于RAM或者STS授权中使用Policy,详细规则如下。 示例 先看下面的一个Policy示例: { "Version": "1", "Statement": [ { "Action": [ "oss:GetBucketAcl", "oss:ListObjects" ], "Resource": [ "acs:oss:*:1775305056529849:mybucket" ], "Effect": "Allow", "Condition": { "StringEquals": { "acs:UserAgent": "java-sdk", "oss:Prefix": "foo" }, "IpAddress": { "acs:SourceIp": "192.168.0.1" } } }, { "Action": [ "oss:PutObject", "oss:GetObject", "oss:DeleteObject" ], "Resource": [ "acs:oss:*:1775305056529849:mybucket/file*" ], "Effect": "Allow", "Condition": { "IpAddress": { "acs:SourceIp": "192.168.0.1" } } } ] } 这是一个授权的Policy,用户用这样的一个Policy通过RAM或STS服务向其他用户授权。Policy当中有一个Statement(一条Policy当中可以有多条Statement)。Statement里面规定了相应的Action、Resource、Effect和Condition。 这条Policy把用户自己名下的mybucket和mybucket/file*这些资源授权给相应的用户,并且支持GetBucketAcl、GetBucket、PutObject、GetObject和DeleteObject这几种操作。Condition中的条件表示UserAgent为java-sdk,源IP为192.168.0.1的时候鉴权才能通过,被授权的用户才能访问相关的资源。Prefix这个Condition是在GetBucket(ListObjects)的时候起作用的,关于这个字段的解释详见OSS的API文档。 配置细则 Version Version定义了Policy的版本,本文档中sw2q的配置方式,设置为1。 Statement 通过Statement描述授权语义,其中可以根据业务场景包含多条语义,每条包含对Action、Effect、Resource和Condition的描述。每次请求系统会逐条依次匹配检查,所有匹配成功的Statement会根据Effect的设置不同分为通过(Allow)、禁止(Deny),其中禁止(Deny)的优先。如果匹配成功的都为通过,该条请求即鉴权通过。如果匹配成功有一条禁止,或者没有任何条目匹配成功,该条请求被禁止访问。 Action Action分为三大类:Service级别操作,对应的是GetService操作,用来列出所有属于该用户的Bucket列表。 Bucket级别操作,对应类似于oss:PutBucketAcl、oss:GetBucketLocation之类的操作,操作的对象是Bucket,它们的名称和相应的接口名称一一对应。 Object级别操作,分为oss:GetObject、oss:PutObject、oss:DeleteObject和oss:AbortMultipartUpload,操作对象是Object。 如想授权某一类的Object的操作,可以选择这几种的一种或几种。另外,所有的Action前面都必须加上oss:,如上面例子所示。Action是一个列表,可以有多个Action。具体的Action和API接口的对应关系如下: Service级别 API Action GetService(ListBuckets) oss:ListBuckets Bucket级别 API Action PutBucket oss:PutBucket GetBucket(ListObjects) oss:ListObjects PutBucketAcl oss:PutBucketAcl DeleteBucket oss:DeleteBucket GetBucketLocation oss:GetBucketLocation GetBucketAcl oss:GetBucketAcl GetBucketLogging oss:GetBucketLogging PutBucketLogging oss:PutBucketLogging DeleteBucketLogging oss:DeleteBucketLogging GetBucketWebsite oss:GetBucketWebsite PutBucketWebsite oss:PutBucketWebsite DeleteBucketWebsite oss:DeleteBucketWebsite GetBucketReferer oss:GetBucketReferer PutBucketReferer oss:PutBucketReferer GetBucketLifecycle oss:GetBucketLifecycle PutBucketLifecycle oss:PutBucketLifecycle DeleteBucketLifecycle oss:DeleteBucketLifecycle ListMultipartUploads oss:ListMultipartUploads PutBucketCors oss:PutBucketCors GetBucketCors oss:GetBucketCors DeleteBucketCors oss:DeleteBucketCors PutBucketReplication oss:PutBucketReplication GetBucketReplication oss:GetBucketReplication DeleteBucketReplication oss:DeleteBucketReplication GetBucketReplicationLocation oss:GetBucketReplicationLocation GetBucketReplicationProgress oss:GetBucketReplicationProgress Object级别 API Action GetObject oss:GetObject HeadObject oss:GetObject PutObject oss:PutObject PostObject oss:PutObject InitiateMultipartUpload oss:PutObject UploadPart oss:PutObject CompleteMultipart oss:PutObject DeleteObject oss:DeleteObject DeleteMultipartObjects oss:DeleteObject AbortMultipartUpload oss:AbortMultipartUpload ListParts oss:ListParts CopyObject oss:GetObject,oss:PutObject UploadPartCopy oss:GetObject,oss:PutObject AppendObject oss:PutObject GetObjectAcl oss:GetObjectAcl PutObjectAcl oss:PutObjectAcl Resource Resource指代的是OSS上面的某个具体的资源或者某些资源(支持*通配),resource的规则是acs:oss:{region}:{bucket_owner}:{bucket_name}/{object_name}。对于所有Bucket级别的操作来说不需要最后的斜杠和{object_name},即acs:oss:{region}:{bucket_owner}:{bucket_name}。Resource也是一个列表,可以有多个Resource。其中的region字段暂时不做支持,设置为*。 Effect Effect代表本条的Statement的授权的结果,分为Allow和Deny,分别指代通过和禁止。多条Statement同时匹配成功时,禁止(Deny)的优先级更高。 例如,期望禁止用户对某一目录进行删除,但对于其他文件有全部权限: { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:*" ], "Resource": [ "acs:oss:*:*:bucketname" ] }, { "Effect": "Deny", "Action": [ "oss:DeleteObject" ], "Resource": [ "acs:oss:*:*:bucketname/index/*", ] } ] } Condition Condition代表Policy授权的一些条件,上面的示例里面可以设置对于acs:UserAgent的检查、acs:SourceIp的检查、还有oss:Prefix这项用来在GetBucket的时候对资源进行限制。 OSS支持的Condition如下: condition 功能 合法取值 acs:SourceIp 指定ip网段 普通的ip,支持*通配 acs:UserAgent 指定http useragent头 字符串 acs:CurrentTime 指定合法的访问时间 ISO8601格式 acs:SecureTransport 是否是https协议 “true”或者”false” oss:Prefix 用作ListObjects时的prefix 合法的object name 更多示例 针对具体场景更多的授权策略配置示例,可以参考教程示例:控制存储空间和文件夹的访问权限和OSS授权常见问题。 Policy在线图形化便捷配置工具,请单击这里。 最佳实践 RAM和STS使用指南
2019-12-01 23:12:47 0 浏览量 回答数 0

回答

为了防止 OSS 被盗链,保护 OSS 的资源安全,用户把 OSS 的 Bucket 权限 设置为私有权限,这样就需要带了签名参数的 URL 去访问。如果 CDN 加速 OSS 的访问 URL,不带 OSS 签名参数的话,就会导致 403。这种情况下可以开启阿里 云 OSS 私有 Bucket 回源授权。当开启私有 OSS Bucket 回源授权后,即表示开启 CDN 对所有 Bucket 的只读权限,CDN 在回源的时候会计算 OSS 的签名参数,从 而可以从 OSS 上正常获取资源。
Lee_tianbai 2021-01-05 13:26:51 0 浏览量 回答数 0

问题

oss 后端构造授权url,前端直接通过授权url上传文件

oss 后端构造授权url,前端直接通过授权url上传文件,请问oss可以实现这样的需求吗...
宏宇天成 2019-12-01 19:32:25 1158 浏览量 回答数 3

问题

OSS转储快速使用

本文档用于帮助用户在完成 OSS 转储授权之后,使用命令行工具快速完成转储任务的提交 使用前提 请确保已经执行过 归档存储 对 OSS 访问的授权,授权流程请参考OSS转储授权请确保已经安装过命令行工具 ...
云栖大讲堂 2019-12-01 21:07:28 1202 浏览量 回答数 0

问题

E-MapReduceOSS 数据权限隔离是什么?

操作步骤 E-MapReduce 支持使用 RAM 来隔离不同子账号的数据。操作步骤如下所示: 登录阿里云RAM 的管理控制台。在RAM中创建子账号,具体流程请参见如何在RAM 中创建子账号。单击阿里云RAM...
nicenelly 2019-12-01 21:21:58 884 浏览量 回答数 0

问题

STS 可以突破RAM用户本身的权限吗?

公司共用一个企业账号 A系统 有一个 ram 账号 rama, 可以访问 为其分配的 oss bucket oss_a. B 系统有一个 ram 账号 ramb ,可以访问 为其分配的 oss bucket oss_b. ...
1738897381927671 2020-04-15 12:03:45 19 浏览量 回答数 1

回答

详细解答可以参考官方帮助文档 适用场景 在典型的C/S系统架构中,服务器端负责接收并处理客户端的请求。那么考虑一个使用OSS作为后端的存储服务,客户端将要上传的文件发送给服务器端,然后服务器端再将数据转发上传到OSS。在这个过程中,一份数据需要在网络上传输两次,一次从客户端到服务器端,一次从服务器端到OSS。当访问量很大的时候,服务器端需要有足够的带宽资源来满足多个客户端的同时上传的需求,这对架构的伸缩性提出了挑战。 为了解决这种场景带来的挑战,OSS提供了授权给第三方上传的功能。使用这个功能,每个客户端可以直接将文件上传到OSS而不是通过服务器端转发,节省了自建服务器的成本,并且充分利用了OSS的海量数据处理能力,无需考虑带宽和并发限制等,可以让客户专心于业务处理。 目前授权上传可以由两种实现方式:URL签名和临时访问凭证。 URL签名 URL签名是授权访问的一种方式,即在请求的URL中带OSS AccessKeyId和Signature字段,这样用户就可以直接使用该URL来进行上传。每个URL签名中携带有过期时间以保证安全。具体的做法可以参考在URL中包含签名。 临时访问凭证 临时访问凭证是通过阿里云Security Token Service(STS)来实现授权的一种方式。其实现请参见STS Java SDK。临时访问凭证的流程如下: 客户端向服务器端发起获得授权的请求。服务器端先验证客户端的合法性。如果是合法客户端,那么服务器端会使用自己的AccessKey来向STS发起一个请求授权的请求,具体可以参考访问控制。 服务器端获取临时凭证之后返回给客户端。 客户端使用获取的临时凭证来发起向OSS的上传请求,更详细的请求构造可以参考临时授权访问。客户端可以缓存该凭证用来上传,直到凭证失效再向服务器端请求新的凭证。 最佳实践 RAM和STS使用指南 Web端直传实践及上传回调
2019-12-01 23:12:35 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 适用场景 在典型的C/S系统架构中,服务器端负责接收并处理客户端的请求。那么考虑一个使用OSS作为后端的存储服务,客户端将要上传的文件发送给服务器端,然后服务器端再将数据转发上传到OSS。在这个过程中,一份数据需要在网络上传输两次,一次从客户端到服务器端,一次从服务器端到OSS。当访问量很大的时候,服务器端需要有足够的带宽资源来满足多个客户端的同时上传的需求,这对架构的伸缩性提出了挑战。 为了解决这种场景带来的挑战,OSS提供了授权给第三方上传的功能。使用这个功能,每个客户端可以直接将文件上传到OSS而不是通过服务器端转发,节省了自建服务器的成本,并且充分利用了OSS的海量数据处理能力,无需考虑带宽和并发限制等,可以让客户专心于业务处理。 目前授权上传可以由两种实现方式:URL签名和临时访问凭证。 URL签名 URL签名是授权访问的一种方式,即在请求的URL中带OSS AccessKeyId和Signature字段,这样用户就可以直接使用该URL来进行上传。每个URL签名中携带有过期时间以保证安全。具体的做法可以参考在URL中包含签名。 临时访问凭证 临时访问凭证是通过阿里云Security Token Service(STS)来实现授权的一种方式。其实现请参见STS Java SDK。临时访问凭证的流程如下: 客户端向服务器端发起获得授权的请求。服务器端先验证客户端的合法性。如果是合法客户端,那么服务器端会使用自己的AccessKey来向STS发起一个请求授权的请求,具体可以参考访问控制。 服务器端获取临时凭证之后返回给客户端。 客户端使用获取的临时凭证来发起向OSS的上传请求,更详细的请求构造可以参考临时授权访问。客户端可以缓存该凭证用来上传,直到凭证失效再向服务器端请求新的凭证。 最佳实践 RAM和STS使用指南 Web端直传实践及上传回调
2019-12-01 23:12:35 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 适用场景 在典型的C/S系统架构中,服务器端负责接收并处理客户端的请求。那么考虑一个使用OSS作为后端的存储服务,客户端将要上传的文件发送给服务器端,然后服务器端再将数据转发上传到OSS。在这个过程中,一份数据需要在网络上传输两次,一次从客户端到服务器端,一次从服务器端到OSS。当访问量很大的时候,服务器端需要有足够的带宽资源来满足多个客户端的同时上传的需求,这对架构的伸缩性提出了挑战。 为了解决这种场景带来的挑战,OSS提供了授权给第三方上传的功能。使用这个功能,每个客户端可以直接将文件上传到OSS而不是通过服务器端转发,节省了自建服务器的成本,并且充分利用了OSS的海量数据处理能力,无需考虑带宽和并发限制等,可以让客户专心于业务处理。 目前授权上传可以由两种实现方式:URL签名和临时访问凭证。 URL签名 URL签名是授权访问的一种方式,即在请求的URL中带OSS AccessKeyId和Signature字段,这样用户就可以直接使用该URL来进行上传。每个URL签名中携带有过期时间以保证安全。具体的做法可以参考在URL中包含签名。 临时访问凭证 临时访问凭证是通过阿里云Security Token Service(STS)来实现授权的一种方式。其实现请参见STS Java SDK。临时访问凭证的流程如下: 客户端向服务器端发起获得授权的请求。服务器端先验证客户端的合法性。如果是合法客户端,那么服务器端会使用自己的AccessKey来向STS发起一个请求授权的请求,具体可以参考访问控制。 服务器端获取临时凭证之后返回给客户端。 客户端使用获取的临时凭证来发起向OSS的上传请求,更详细的请求构造可以参考临时授权访问。客户端可以缓存该凭证用来上传,直到凭证失效再向服务器端请求新的凭证。 最佳实践 RAM和STS使用指南 Web端直传实践及上传回调
2019-12-01 23:12:35 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 适用场景 在典型的C/S系统架构中,服务器端负责接收并处理客户端的请求。那么考虑一个使用OSS作为后端的存储服务,客户端将要上传的文件发送给服务器端,然后服务器端再将数据转发上传到OSS。在这个过程中,一份数据需要在网络上传输两次,一次从客户端到服务器端,一次从服务器端到OSS。当访问量很大的时候,服务器端需要有足够的带宽资源来满足多个客户端的同时上传的需求,这对架构的伸缩性提出了挑战。 为了解决这种场景带来的挑战,OSS提供了授权给第三方上传的功能。使用这个功能,每个客户端可以直接将文件上传到OSS而不是通过服务器端转发,节省了自建服务器的成本,并且充分利用了OSS的海量数据处理能力,无需考虑带宽和并发限制等,可以让客户专心于业务处理。 目前授权上传可以由两种实现方式:URL签名和临时访问凭证。 URL签名 URL签名是授权访问的一种方式,即在请求的URL中带OSS AccessKeyId和Signature字段,这样用户就可以直接使用该URL来进行上传。每个URL签名中携带有过期时间以保证安全。具体的做法可以参考在URL中包含签名。 临时访问凭证 临时访问凭证是通过阿里云Security Token Service(STS)来实现授权的一种方式。其实现请参见STS Java SDK。临时访问凭证的流程如下: 客户端向服务器端发起获得授权的请求。服务器端先验证客户端的合法性。如果是合法客户端,那么服务器端会使用自己的AccessKey来向STS发起一个请求授权的请求,具体可以参考访问控制。 服务器端获取临时凭证之后返回给客户端。 客户端使用获取的临时凭证来发起向OSS的上传请求,更详细的请求构造可以参考临时授权访问。客户端可以缓存该凭证用来上传,直到凭证失效再向服务器端请求新的凭证。 最佳实践 RAM和STS使用指南 Web端直传实践及上传回调
2019-12-01 23:12:35 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 适用场景 在典型的C/S系统架构中,服务器端负责接收并处理客户端的请求。那么考虑一个使用OSS作为后端的存储服务,客户端将要上传的文件发送给服务器端,然后服务器端再将数据转发上传到OSS。在这个过程中,一份数据需要在网络上传输两次,一次从客户端到服务器端,一次从服务器端到OSS。当访问量很大的时候,服务器端需要有足够的带宽资源来满足多个客户端的同时上传的需求,这对架构的伸缩性提出了挑战。 为了解决这种场景带来的挑战,OSS提供了授权给第三方上传的功能。使用这个功能,每个客户端可以直接将文件上传到OSS而不是通过服务器端转发,节省了自建服务器的成本,并且充分利用了OSS的海量数据处理能力,无需考虑带宽和并发限制等,可以让客户专心于业务处理。 目前授权上传可以由两种实现方式:URL签名和临时访问凭证。 URL签名 URL签名是授权访问的一种方式,即在请求的URL中带OSS AccessKeyId和Signature字段,这样用户就可以直接使用该URL来进行上传。每个URL签名中携带有过期时间以保证安全。具体的做法可以参考在URL中包含签名。 临时访问凭证 临时访问凭证是通过阿里云Security Token Service(STS)来实现授权的一种方式。其实现请参见STS Java SDK。临时访问凭证的流程如下: 客户端向服务器端发起获得授权的请求。服务器端先验证客户端的合法性。如果是合法客户端,那么服务器端会使用自己的AccessKey来向STS发起一个请求授权的请求,具体可以参考访问控制。 服务器端获取临时凭证之后返回给客户端。 客户端使用获取的临时凭证来发起向OSS的上传请求,更详细的请求构造可以参考临时授权访问。客户端可以缓存该凭证用来上传,直到凭证失效再向服务器端请求新的凭证。 最佳实践 RAM和STS使用指南 Web端直传实践及上传回调
2019-12-01 23:12:35 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT