Amazon s3 将文件上载到S3 bucket-vue上载组件
我正在尝试使用将文件上载到AWS S3 bucket。我有一个web api设置,它返回一个带有相关细节的预签名url。我很难让这个装置正常工作。文档中说url应该作为文件上传组件的道具提供,如下所示-Amazon s3 将文件上载到S3 bucket-vue上载组件,amazon-s3,vuejs2,vue-component,Amazon S3,Vuejs2,Vue Component,我正在尝试使用将文件上载到AWS S3 bucket。我有一个web api设置,它返回一个带有相关细节的预签名url。我很难让这个装置正常工作。文档中说url应该作为文件上传组件的道具提供,如下所示- :put-action="signedUrl" //local variable which is set to the url returned from the url put-action="https://s3.amazonaws.com/...." 一旦文件通过inputFilte
:put-action="signedUrl" //local variable which is set to the url returned from the url
put-action="https://s3.amazonaws.com/...."
一旦文件通过inputFilter筛选条件,我就会启动web api调用,在我的例子中,这只是检查文本文件扩展名。我能够获得正确的签名url,甚至当我将url作为put action道具的值时,该url也能正常工作,如-
:put-action="signedUrl" //local variable which is set to the url returned from the url
put-action="https://s3.amazonaws.com/...."
但是,当尝试动态设置它时,启动上载状态会显示-No action configured,这很奇怪,因为我确信变量是在从API返回承诺后设置的
因此,组件似乎不接受新值
我曾尝试在promise按建议返回后设置道具,甚至尝试在promise按建议返回后重新呈现上载组件,但我仍然收到相同的消息
我的方法可能有什么问题。通过设置文件级属性,实现了这一点 如下-
methods: {
inputFilter(newFile, oldFile, prevent) {
if (newFile && !oldFile) {
if (doesNotPassTheFilter) {
return prevent();
}
else {
return this.$store.dispatch('getSignedUrl').then((url) => {
newFile.putAction = url;
});
}
}
}