autojs之阿里-对象存储OSS-SDK的使用

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 使用场景autojs使用阿里云对象存储OSS

使用场景


autojs使用阿里云对象存储OSS


效果展示


  1. 上传文件

微信图片_20220624174106.png

  1. 对象存储中上传的文件


原理


  1. 安卓跑通对象存储的SDK, 导出dex
  2. autojs使用dex, 就可以使用对象存储


对象存储官方文档


https://help.aliyun.com/document_detail/32042.html?spm=a2c4g.11186623.6.1315.28d246a1Z7rNFy


知识点


  1. 安卓申请读写sd卡权限
  2. AndroidManifest.xml 添加权限
  3. 网络安全配置允许明文传输
  4. 权限申请回调
  5. 创建子线程执行网络操作
  6. accessKeyId, String secretKeyId, String securityToken的获取
  7. 多个dex合并为一个dex, 不合并dex的话, 会出错


代码讲解


  1. 安卓申请读写sd卡权限
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
AndroidManifest.xml 添加权限


  1. AndroidManifest.xml 添加权限
android:networkSecurityConfig="@xml/network_security_config"


  1. 网络明文传输network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>


  1. 创建子线程执行网络操作
new Thread(new Runnable() {
    public void run() {
    }
})


  1. accessKeyId, String secretKeyId, String securityToken的获取
// npm install @alicloud/pop-core --save
const Core = require("@alicloud/pop-core");
//构建一个阿里云客户端, 用于发起请求。
//构建阿里云客户端时,需要设置AccessKey ID和AccessKey Secret。
var client = new Core({
  accessKeyId: "xxx",
  accessKeySecret: "xxx",
  endpoint: "https://sts.aliyuncs.com",
  apiVersion: "2015-04-01",
});
//设置参数。
var params = {
  RegionId: "cn-beijing",
  RoleArn: "acs:ram::188xxx",
  RoleSessionName: "external-username",
};
var requestOption = {
  method: "POST",
};
//发起请求,并得到响应。
client.request("AssumeRole", params, requestOption).then(
  (result) => {
    console.log(JSON.stringify(result));
  },
  (ex) => {
    console.log(ex);
  }
);


  1. 多个dex合并为一个dex, 不合并dex的话, 会出错

手机上用mt管理器合并两个dex文件


  1. build.gradle
dependencies {
    ...
    implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.9.0'
    implementation  'com.aliyun.dpa:oss-android-sdk:2.9.5'
}


  1. gradle sync之后, 点击菜单中的 build / Make Moule
    dex文件位置: D:\script\asProject\UseAliOss\app\build\intermediates\dex\debug
    合并的两个dex文件就在这个文件夹里面


  1. 合并dex之后, aj就可以导入dex文件了
let dexPath = files.path("classes_merge.dex");
runtime.loadDex(dexPath);


  1. 上传文件
credentialProvider = new OSSStsTokenCredentialProvider(ak, sk, token);
conf = new ClientConfiguration();
conf.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒。
conf.setSocketTimeout(15 * 1000); // socket超时,默认15秒。
conf.setMaxConcurrentRequest(5); // 最大并发请求书,默认5个。
conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次。
oss = new OSSClient(context, endpoint, credentialProvider, conf);
let filepath = files.path("./project.json");
put = new PutObjectRequest("autojs-test", "xxxxxxxxxxxxxxx", filepath);
putResult = oss.putObject(put);


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
29天前
|
缓存 Java 对象存储
配置自己的 阿里OSS 环境,但在引入自己创建的依赖时出现报错。
配置自己的 阿里OSS 环境,但在引入自己创建的依赖时出现报错。
|
3月前
|
弹性计算 监控 Serverless
Serverless 应用引擎操作报错合集之阿里函数计算中调用zip-oss-fc函数返回时候出现错误代码如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
Serverless 应用引擎操作报错合集之阿里函数计算中调用zip-oss-fc函数返回时候出现错误代码如何解决
|
3月前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
3月前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
|
3月前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
168 9
|
3月前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数中sdk可以被中层引用如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
3月前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7天前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
30 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
3月前
|
安全 开发工具 Android开发
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
1163 0