牙叔教程 简单易学
使用场景
对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。
autojs版本
autojs版本.png代码讲解
1. 导入类
runtime.loadDex("classes_merge.dex");
importClass(com.tencent.qcloud.core.auth.ShortTimeCredentialProvider);
importClass(com.tencent.cos.xml.CosXmlServiceConfig);
importClass(com.tencent.cos.xml.CosXmlService);
importClass(com.tencent.cos.xml.transfer.TransferConfig);
importClass(com.tencent.cos.xml.transfer.TransferManager);
importClass(com.tencent.cos.xml.transfer.TransferStateListener);
importClass(java.io.File);
importClass(com.tencent.cos.xml.listener.CosXmlResultListener);
importClass(com.tencent.cos.xml.listener.CosXmlProgressListener);
importClass(com.tencent.cos.xml.transfer.COSXMLUploadTask);
2. 填写秘钥信息
secretId = "COS_SECRETID"; //永久密钥 secretId
secretKey = "COS_SECRETKEY"; //永久密钥 secretKey
// keyDuration 为请求中的密钥有效期,单位为秒
myCredentialProvider = new ShortTimeCredentialProvider(secretId, secretKey, 300);
3.存储桶所在地域简称
// 存储桶所在地域简称,例如广州地区是 ap-guangzhou
region = "ap-chengdu";
4. 存储桶名字, 存储的文件名, 以及要上传的文件路径
bucket = "test-1304656192"; //存储桶,格式:BucketName-APPID
cosPath = "第一个文件"; //对象在存储桶中的位置标识符,即称对象键
srcPath = new File("/sdcard/脚本/xxx.js").toString(); //本地文件的绝对路径
5. 实例化要用到的lei
serviceConfig = new CosXmlServiceConfig.Builder()
.setRegion(region)
.isHttps(true) // 使用 HTTPS 请求, 默认为 HTTP 请求
.builder();
// 初始化 COS Service,获取实例
cosXmlService = new CosXmlService(context, serviceConfig, myCredentialProvider);
// 初始化 TransferConfig,这里使用默认配置,如果需要定制,请参考 SDK 接口文档
transferConfig = new TransferConfig.Builder().build();
// 初始化 TransferManager
transferManager = new TransferManager(cosXmlService, transferConfig);
srcPath = new File("/sdcard/脚本/xxx.js").toString(); //本地文件的绝对路径
6. 上传文件, 并设置上传进度回调
//若存在初始化分块上传的 UploadId,则赋值对应的 uploadId 值用于续传;否则,赋值 null
uploadId = null;
// 上传文件
cosxmlUploadTask = transferManager.upload(bucket, cosPath, srcPath, uploadId);
//设置上传进度回调
cosxmlUploadTask.setCosXmlProgressListener(
new CosXmlProgressListener({
onProgress: function (complete, target) {
log("complete = " + complete);
log("target = " + target);
// todo Do something to update progress...
},
})
);
//设置返回结果回调
cosxmlUploadTask.setCosXmlResultListener(
new CosXmlResultListener({
onSuccess: function (request, result) {
cOSXMLUploadTaskResult = result;
log("cOSXMLUploadTaskResult = " + cOSXMLUploadTaskResult);
},
onFail: function (request, clientException, serviceException) {
if (clientException != null) {
log(clientException);
} else {
log(serviceException);
}
},
})
);
//设置任务状态回调, 可以查看任务过程
cosxmlUploadTask.setTransferStateListener(
new TransferStateListener({
onStateChanged: function (state) {
log("state = " + state);
},
})
);
给我个面子小图.jpg
网友评论