+
91
-

阿里云oss前端获取policy签名直传oss上传文件回调如何传?

阿里云oss前端获取policy签名直传oss上传文件回调如何传?


网友回复

+
10
-

前端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配置与回调代码

点击查看全文

我知道答案,我要回答