HarmonyOS 鸿蒙Next API9 如何处理 阿里云 OSS 图片的上传
HarmonyOS 鸿蒙Next API9 如何处理 阿里云 OSS 图片的上传 如题:API9 如何处理 阿里云 OSS 图片的上传
让内嵌的h5页面去做上传阿里云OSS图片功能。
步骤1:在鸿蒙原生里,用PhotoViewPicker得到图片的uri(沙箱路径)
import picker from '@ohos.file.picker';
let uri = photoSelectResult.photoUris[0];
步骤2:在鸿蒙原生里,根据uri的(沙箱路径)读取的内存中,得到file.fd(内存文件id)
import fs from '@ohos.file.fs';
let file = fs.openSync(uri, fs.OpenMode.READ_ONLY);//file.fd
let buffer = new ArrayBuffer(4096);
let readLen = fs.readSync(file.fd, buffer);
console.info('readSync data to file succeed and buffer size is:' + readLen);
fs.closeSync(file);
步骤3:根据file.fd,将内存文件拷贝到真实路径,注意该路径图片名称最好是随机数,如果重复的话,只会首次拷贝成功。
let context = getContext(this) as common.UIAbilityContext;
let pathDir = context.filesDir;
await fs.copyFile(file.fd, pathDir + '/test随机数.jpg')
步骤4:当拷贝成功后, 将新的图片地址发送给h5进行阿里云OSS上传操作
pathDir + ‘/test随机数.jpg’
注意,这里需要权限
"ohos.permission.WRITE_MEDIA"
更多关于HarmonyOS 鸿蒙Next API9 如何处理 阿里云 OSS 图片的上传的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
执行拷贝文件,就不执行,下一步了,
try catch一下,看看报什么错。
你是怎么把图片传给阿里云oss,图片地址发给h5 ???
留名,目前也是无解
const HEADER: Record<string, string> = { ‘content-type’: ‘multipart/form-data’,‘set-cookie’: cookie};
header 后台拿不到怎么办
大佬, event.result, handleFile, 这个方法,怎么上传到公司oss的目录的
问下,这个APP filesDir 的路径怎么才能找到,搞了很久都没找那当前应用的位置,写文件返回是成功了,但文件怎么才能找到呀
同问
在HarmonyOS鸿蒙Next API9中处理阿里云OSS(对象存储服务)图片上传,可以通过以下步骤实现:
-
配置阿里云OSS SDK:首先,确保你的HarmonyOS应用已经集成了阿里云OSS的SDK。由于HarmonyOS有其独特的包管理和依赖注入机制,你需要从阿里云官方获取适用于HarmonyOS的SDK版本,并按照其文档进行配置。
-
获取上传凭证:在上传图片之前,你需要从服务器获取一个临时的上传凭证(包括AccessKeyId、AccessKeySecret、SecurityToken、OSS的Bucket名称、Region以及用于签名上传策略的STSToken等)。这些凭证通常通过你的应用服务器与阿里云OSS服务进行交互获取。
-
构建上传请求:使用获取到的凭证和图片文件,构建OSS的上传请求。这通常涉及设置上传的Object Key(文件名)、设置文件内容类型等。
-
执行上传操作:通过HarmonyOS的网络请求API(如HttpURLConnection或第三方网络库)发送构建的上传请求,将图片文件上传到指定的OSS Bucket中。
-
处理上传结果:根据OSS服务返回的响应,处理上传结果。如果上传成功,OSS服务会返回一个200 OK的HTTP状态码以及相关的上传信息。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,