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,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1451 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
5月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7月前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
122 4
|
7月前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
162 9
|
7月前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数中sdk可以被中层引用如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
114 0
|
1月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
78 1
|
2月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
67 7
|
4月前
|
开发工具 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
190 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
4月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
393 4

热门文章

最新文章