有一个可以储存的云服务,任何云服务都可以 这里是自建的一个
测试一下在云服务中能够成功上传照片 在postman测试
写一个程序,任何程序都可以 node python java shell cmd都可以,用来发起请求上传照片 ,最后一定控制台打印 (python的print,js的console.log....)
Upload Success: \n
链接1 \n
链接2 \n
.....
在typora偏好设置中的[上传服务]选中Custom Commdline 选中自己要使用的程序脚本
我的是 node C:\Users\username\Desktop\ts\upper\up.js
测试! 控制台返回 则成功
Upload Success: \n
链接1 \n
链接2 \n
去typora传一张图片 右击上传
// 上传多个文件到OSS存储服务
const axios = require('axios');
const fs = require('fs');
const { resourceLimits } = require('worker_threads');
const FormData = require('form-data');
// 从命令行参数中获取要上传的文件路径列表
const filePathList = process.argv.slice(2);
// 如果没有指定要上传的文件,则输出提示信息并退出程序
if (filePathList.length === 0) {
console.error('请指定要上传的文件路径!');
process.exit(1);
}
// OSS存储服务API地址
const apiUrl = 'xxxxxxxxxxxxxxxxxxx';
let result="Upload Success: \n";
// 设置请求头
const headers = {
'AccessKey': 'xxxxxxxx',
'SecretKey': 'xxxxxxxxx',
'AppId': 'xxxxxxx',
'Content-Type': 'multipart/form-data'
};
// 定义一个异步函数,用于上传一个文件
async function uploadFile(filePath) {
// 创建form-data表单
const formData = new FormData();
formData.append('file', fs.createReadStream(filePath));
try {
// 发送POST请求上传图片
const response = await axios.post(apiUrl, formData, { headers });
result += response.data.data+"\n";
return response.data;
} catch (error) {
console.error(`上传失败:${error}`);
throw error;
}
}
// 遍历文件路径列表,上传每个文件
(async () => {
for (const filePath of filePathList) {
await uploadFile(filePath);
}
console.log(result);
})();