阿里云oss前端获取policy签名直传oss上传文件回调如何传?
网友回复
前端js
try {
获取 OSS 配置
const res = await fetch(`/后端url`);
if (!res.ok) throw new Error('获取OSS配置失败');
let responsedata= await res.json();
if(responsedata.err){
alert(responsedata.data);
return;
}
console.log(responsedata);
ossConfig.value=responsedata.data;
console.log('OSS配置加载成功', ossConfig.value.dir);
if (!ossConfig.value) throw new Error('OSS配置无效');
// 3. 构造 FormData 直接上传到 OSS
// 为了避免重名,加上时间戳前缀
const key = ossConfig.value.dir + Date.now() + '_' + fileToUpload.name;
const formData = new FormData();
formData.append('key', key);
formData.append('policy', ossConfig.value.policy);
formData.append('OSSAccessKeyId', ossConfig.value.accessid);
formData.append('signature', ossConfig.value.signature);
formData.append('success_action_status', '200');
formData.append('callback', ossConfig.value.callback);
formData.append('file', fileToUpload);
const resp = await fetch(ossConfig.value.host, { method: 'POST', body: formData });
const resp_data= await resp.json();
if ( resp_data.status=="success") {
const url = `${ossConfig.value.host}/${key}`;
return url;
} else {
alert( 'OSS上传失败'+resp_data.message);
// console.error('OSS上传失败', text);
throw new Error('上传云端失败: ' + resp.status);
}
} catch (e) {
console.error("上传流程异常:", e);
return null;
}后端获取oss配置与回调代码
点击查看全文


