web/移动端数据上传或下载对接对象存储OBS应用框架和搭建

举报
shan0304 发表于 2019/12/06 12:08:49 2019/12/06
【摘要】 在web或者 移动app 需要进行数据直接上传对象存储 或者从对象存储下载场景下, 本文示例使用临时ak sk sts-token 进行数据处理的业务框架和主要实现点示例前提条件: 已经完成华为云账户开通。 已经创建了华为云对象存储的桶。 掌握华为云IAM服务账户权限基本概念。 掌握了对象存储使用的基础方法。整体业务框架图:IAM 临时AK SK Token的获取和权限控制: 临时A...

在web或者 移动app 需要进行数据直接上传对象存储 或者从对象存储下载场景下, 本文示例使用临时ak sk sts-token 进行数据处理的业务框架和主要实现点示例


前提条件:

  已经完成华为云账户开通。

  已经创建了华为云对象存储的桶。

  掌握华为云IAM服务账户权限基本概念。

  掌握了对象存储使用的基础方法。


整体业务框架图:

image.png


IAM 临时AK SK Token的获取和权限控制:

 临时AK SK  Token实际是代表了一个用户,而这个用户是受OBS的权限控制和IAM的权限控制(权限基础参考:OBS权限控制的几件事(一));进而实现对于分发出去的临时AK SK Token能做什么,不能做什么的一个控制; 在使用此用户去兑换临时AK SK Token之前,需要完成对于此用户访问OBS权限的授权,授权根据业务需要在OBS桶上使用桶策略完成(参考:)

 

当前 临时AK SK Token的兑换只能使用用户的用户名密码进行,建议在后台服务器上控制实现此部分内容:

对于临时AK SK Token的获取 API参考:https://support.huaweicloud.com/api-iam/zh-cn_topic_0097949518.html

对于临时AK SK Token的获取 SDK参考:https://developer.huaweicloud.com/sdk?IAM

一个python使用委托获取临时AK SK Token的示例:

OBS web/移动端 client初始化示例:

OBS相关SDK 获取地址:

https://developer.huaweicloud.com/sdk?OBS


Android:

private static final String endPoint = "https://your-endpoint";

private static final String ak = "*** Provide your Access Key ***";

private static final String sk = "*** Provide your Secret Key ***";
private static final String token = "*** Provide your Secret Key ***";

private static ObsClient obsClient;

// 创建ObsClient实例
ObsConfiguration config = new ObsConfiguration();
config.setSocketTimeout(30000);
config.setConnectionTimeout(10000);
config.setEndPoint(endPoint);
obsClient = new ObsClient(ak, sk,token,config); 
// 使用访问OBS
// 关闭obsClient
obsClient.close();

iOS:

NSString *endPoint = @"your-endpoint";
NSString *SK = @"*** Provide your Secret Key ***";
NSString *AK = @"*** Provide your Access Key ***";
// 初始化身份验证
OBSStaticCredentialProvider *credentailProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK];
securityTokencredentailProvider.securityToken = @"*** Provide your Security Token ***";
// 初始化服务配置
OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentailProvider];
// 初始化
clientOBSClient *client  = [[OBSClient alloc] initWithConfiguration:conf];


web js:

// 未引入AMD,直接通过构造函数创建ObsClient实例var obsClient = new ObsClient({
       access_key_id: '*** Provide your Access Key ***',
       secret_access_key: '*** Provide your Secret Key ***',
       security_token:  '*** Provide your STS Token ***'
       server : 'https://your-endpoint'});
       // 使用访问OBS
       
// 引入AMD,通过依赖注入的构造函数创建ObsClient实例var obsClient;
define(['ObsClient'], function(ObsClient){
    obsClient = new ObsClient({
        access_key_id: '*** Provide your Access Key ***',
        secret_access_key: '*** Provide your Secret Key ***',
        security_token: '*** Provide your STS Token ***'
        server : 'https://your-endpoint'
    });    
    // 使用访问OBS});


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。