aliyunStsOss

来自于:开发者立即使用

概述

aliyunStsOss封装了阿里云OSS云储存平台的SDK,集成了上传、下载、文件处理功能;使用之前须开通阿里云OSS服务,获取 accessKeyId 和 accessKeySecret。本文档假设您已经开通了阿里云OSS 服务,并创建了AccessKeyId 和AccessKeySecret。 本文档只支持使用STS临时授权访问模式。

getStsToken

获取sts鉴权临时secret(可用自身的请求替代)

getStsToken({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:(必选项)获取stsToken的请求的地址

type:

  • 类型:字符串
  • 描述:(可选项)请求方式 POST 或 GET
  • 默认值:GET

data:

  • 类型:JSON对象
  • 描述:(可选项)发送到服务器的数据

callback(ret, err)

ret:

  • 类型:JSON对象,返回服务器的所有数据
  • 内部字段:
{
    data: {          //此属性为服务器封装,按原数据返回
        accessKeyId: 'accessKeyId',            //临时keyId
        accessKeySecret: 'accessKeySecret',    //临时keySecret
        expiration: 'expiration',              //有效期
        securityToken: 'securityToken'         //密钥token
    },
    message: '操作成功',                       //信息描述
    code: 200                                  //此字段固定,不可改变,int类型
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:系统异常
                    //10001:url参数异常
                    //10002:type参数异常
                    //10003:网络异常
                    //404:无效URL
}

示例代码

var oss = api.require('aliyunStsOss');
oss.getStsToken({
    url: '/sts/getToken.mt'
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

initConfig

初始化oss对象。 移动终端是一个不受信任的环境,如果把AccessKeyId和AccessKeySecret直接保存在终端本地用来加签请求,存在极高的风险。所以推荐使用STS临时授权访问。

initConfig({params}, callback(ret, err))

params

endpoint:

  • 类型:字符串
  • 描述:(可选项)阿里云OSS服务在各个区域的地址,如使用CDN加速并有自定义endpoint须填
  • 默认值:http://oss-cn-hangzhou.aliyuncs.com

accessKeyId:

  • 类型:字符串
  • 描述:(必选项)从阿里云获取的accessKeyId

accessKeySecret:

  • 类型:字符串
  • 描述:(必选项)从阿里云获取的accessKeySecret

securityToken:

  • 类型:字符串
  • 描述:(必选项)从阿里云获取的securityToken

callback(ret, err)

ret:

  • 类型:JSON对象,返回服务器的所有数据
  • 内部字段:
{
    message: '初始化成功',      //信息描述
    code: 200                   //状态码
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:初始化失败
                    //10001:accessKeyId参数异常
                    //10002:accessKeySecret参数异常
                    //10003:securityToken参数异常
}

示例代码

var oss = api.require('aliyunStsOss');
oss.initConfig({
    accessKeyId: 'accessKeyId',
    securityToken: 'securityToken',
    accessKeySecret: 'accessKeySecret'
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

init

初始化oss对象。(本文档推荐使用) 移动终端是一个不受信任的环境,如果把AccessKeyId和AccessKeySecret直接保存在终端本地用来加签请求,存在极高的风险。所以推荐使用STS临时授权访问。 请求地址返回的数据格式必须如下:

{
    data: {          
        accessKeyId: 'accessKeyId',             //临时keyId
        accessKeySecret: 'accessKeySecret',     //临时keySecret
        securityToken: 'securityToken'          //密钥token
    },
    code: 200                                   //状态码为200,不可改变,int类型
}

init({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:(必选项)获取stsToken的请求的地址

type:

  • 类型:字符串
  • 描述:(可选项)请求方式 POST 或 GET
  • 默认值:GET

data:

  • 类型:JSON对象
  • 描述:(可选项)发送到服务器的数据

endpoint:

  • 类型:字符串
  • 描述:(可选项)阿里云OSS服务在各个区域的地址,如使用CDN加速并有自定义endpoint须填
  • 默认值:http://oss-cn-hangzhou.aliyuncs.com

callback(ret, err)

ret:

  • 类型:JSON对象,返回服务器的所有数据
  • 内部字段:
{
    message: '初始化成功',     //信息描述
    code: 200                  //状态码
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:系统异常
                    //10001:url参数异常
                    //10002:type参数异常
                    //10003:网络异常
                    //10004:网络数据有误
                    //10005:初始化失败
                    //404:无效URL
}

示例代码

var oss = api.require('aliyunStsOss');
oss.init({
    url: '/sts/getToken.mt'
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

upload

文件上传,通过NSURL上传一个文件

upload({params}, callback(ret, err))

params

bucketName:

  • 类型:字符串
  • 描述:(必选项)Bucket名称

objectKey:

  • 类型:字符串
  • 描述:(必选项)Object名称,包含文件最终命名。如:"folder/subfolder/file"
  • 注意:路径默认是“根目录”,不需要以‘/’开头。

file:

  • 类型:字符串
  • 描述:(必选项)要上传的文件,支持fs://、cache://等文件路径协议及真实路径。

type:

  • 类型:数值
  • 描述:(可选项)上传类型:0同步;1异步。
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象,返回服务器的所有数据
  • 内部字段:
{
    message: '上传成功',       //状态码描述
    requestId: 'requestId',    //x-oss-request-id是由Aliyun OSS创建,并唯一标识这个response的UUID。
    url: 'http://xxx.jpg',     //文件链接,公共读可以直接访问
    code: 200                  //状态码
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:系统异常
                    //10001:bucketName参数异常
                    //10002:objectKey参数异常
                    //10003:file参数异常
                    //10004:type参数异常
}

示例代码

var oss = api.require('aliyunStsOss');
oss.upload({
    bucketName: 'bucketName',
    objectKey: 'headImage/XXXXX.jpg',
    file: '/storage/emulated/0/UZMap/A6059600789637/picture/p-307332b9.jpg'
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resumableUpload

文件断点续传,通过NSURL上传一个文件

resumableUpload({params}, callback(ret, err))

params

bucketName:

  • 类型:字符串
  • 描述:(必选项)Bucket名称

objectKey:

  • 类型:字符串
  • 描述:(必选项)Object名称,包含文件最终命名。如:"folder/subfolder/file"
  • 注意:路径默认是“根目录”,不需要以‘/’开头。

file:

  • 类型:字符串
  • 描述:(必选项)要上传的文件,支持fs://、cache://等文件路径协议及真实路径。

callback(ret, err)

ret:

  • 类型:JSON对象,返回服务器的所有数据
  • 内部字段:
{
    message: '上传成功',       //状态码描述
    requestId: 'requestId',    //x-oss-request-id是由Aliyun OSS创建,并唯一标识这个response的UUID。
    url: 'http://xxx.jpg',     //文件链接,公共读可以直接访问
    code: 200                  //状态码
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:系统异常
                    //10001:bucketName参数异常
                    //10002:objectKey参数异常
                    //10003:file参数异常
}

示例代码

var oss = api.require('aliyunStsOss');
oss.resumableUpload({
    bucketName: 'bucketName',
    objectKey: 'headImage/XXXXX.jpg',
    file: '/storage/emulated/0/UZMap/A6059600789637/picture/p-307332b9.jpg'
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

download

下载文件 使用方法前,需初始化oss对象

download({params}, callback(ret, err))

params

bucketName:

  • 类型:字符串
  • 描述:(必选项)Bucket名称

objectKey:

  • 类型:字符串
  • 描述:(必选项)Object名称,包含文件最终命名。如:"folder/subfolder/file"
  • 注意:路径默认是“根目录”,不需要以‘/’开头。

path:

  • 类型:字符串
  • 描述:(必选项)要上传的文件,支持fs://、cache://等文件路径协议及真实路径。

type:

  • 类型:数值
  • 描述:(可选项)上传类型:0同步;1异步。
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象,返回服务器的所有数据
  • 内部字段:
{
    message: '下载成功',        //状态码描述
    requestId: 'requestId',     //x-oss-request-id是由Aliyun OSS创建,并唯一标识这个response的UUID。
    path: '/storage/xxx.jpg',   //文件本地路径
    code: 200                   //状态码
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:系统异常
                    //10001:bucketName参数异常
                    //10002:objectKey参数异常
                    //10003:file参数异常
                    //10004:type参数异常
}

示例代码

var oss = api.require('aliyunStsOss');
oss.download({
    bucketName: 'bucketName',
    objectKey: 'headImage/XXXXX.jpg',
    path: api.cacheDir + '/XXXXX.jpg'
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteObject

删除文件 使用方法前,需初始化oss对象

deleteObject({params}, callback(ret, err))

params

bucketName:

  • 类型:字符串
  • 描述:(必选项)Bucket名称

objectKey:

  • 类型:字符串
  • 描述:(必选项)Object名称,包含文件最终命名。如:"folder/subfolder/file"
  • 注意:路径默认是“根目录”,不需要以‘/’开头。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    message: '删除成功',        //状态码描述
    requestId: 'requestId',     //x-oss-request-id是由Aliyun OSS创建,并唯一标识这个response的UUID。
    code: 200                   //状态码
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:系统异常
                    //10001:bucketName参数异常
                    //10002:objectKey参数异常
}

示例代码

var oss = api.require('aliyunStsOss');
oss.deleteObject({
    bucketName: 'bucketName',
    objectKey: 'headImage/XXXXX.jpg'
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

signAccessObjectURL

签名URL授予第三方访问(私有读的情况下使用,亦可获取文件的正确访问地址使用) 使用方法前,需初始化oss对象

signAccessObjectURL({params}, callback(ret, err))

params

bucketName:

  • 类型:字符串
  • 描述:(必选项)Bucket名称

objectKey:

  • 类型:字符串
  • 描述:(必选项)Object名称,包含文件最终命名。如:"folder/subfolder/file"
  • 注意:路径默认是“根目录”,不需要以‘/’开头。

type:

  • 类型:数值
  • 描述:(可选项)公开私有类型0:公开;1:私有
  • 默认:0

interval:

  • 类型:数值
  • 描述:(可选项)过期时间秒
  • 默认:1800

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    message: '删除成功',                       //状态码描述
    url: 'http://xxx.jpg?OSSAccessKeyId=',     //有效请求地址
    code: 200                                  //状态码
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    message: ''     //错误描述
    code: 10000        //错误码
                    //10000:系统异常
                    //10001:bucketName参数异常
                    //10002:objectKey参数异常
                    //10003:type参数异常
}

示例代码

var oss = api.require('aliyunStsOss');
oss.signAccessObjectURL({
    bucketName: 'bucketName',
    objectKey: 'headImage/XXXXX.jpg',
    type: 1
}, function(ret, err) {
    if(ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本