上传图片到oss,线上项目若需要提交图片,我现在使用oss保存
可以使用支付宝小程序官方的云服务,好像是直接调用接口,目前公测免费
https://docs.alipay.com/mini/cloud-service/tcg57g
上传oss的一些细节,根据上面oss官方文档,下载应用服务器代码,unload.js中修改
accessid= '';
accesskey= '';
host = '';
host 字段格式为 bucket.endpoint (如下面的zhufubao.oss-cn-beijing)
https://zhufubao.oss-cn-beijing.aliyuncs.com
运行index.html获取policy,OSSAccessKeyId,signature,
my.chooseImage({
chooseImage: 1,
success: res => {
const path = res.apFilePaths[0];
console.log(path);
my.uploadFile({
url: 'https://zhufubao.oss-cn-beijing.aliyuncs.com',
fileType: 'image',
fileName: 'file',
filePath: path,
formData: {
name: "${fileName}",
//res.apFilePaths[0]是支付宝小程序调用chooseImage接口返回的图片地址,需要自己去修改,因为它返回的是 temp://+图片地址,可以分割得到图片地址,在存储的时候自定义存储路径,用host对应的bucket吓得文件路径拼接上图片地址
//key: 'equipment-image/'+path.split('://')[1],
key: res.apFilePaths[0], //上传到OSS的Object名称。如果名称包含路径,如a/b/c/b.jpg,则OSS会自动创建相应的文件夹。
policy: '',
OSSAccessKeyId: '',
signature: '',
success_action_status: 200 //如果不设置success_action_status,文件上传成功后则返回204状态码。
},
success: res => {
my.alert({ title: '上传成功' });
},
fail: function(res) {
my.alert({ title: '上传失败' });
},
});
},
});
上传到oss之后,图片如果是不可预览的,设置http头为image/png