我正在尝试使用vue-upload-component将文件上传到AWS S3存储桶。我有一个Web API设置,它返回带有相关详细信息的预签名URL。我很难设置此设置。该文档说,该网址应以props
的形式提供给文件上传组件-
:put-action="signedUrl" //local variable which is set to the url returned from the url
文件通过inputFilter
过滤条件后,我将触发Web api调用,在我的情况下,该过滤条件仅检查文本文件扩展。我可以得到正确的签名网址,甚至当我将网址用作put-action
道具的值时,它也可以正常工作-
put-action="https://s3.amazonaws.com/...."
但是,当尝试动态设置它时,开始上传状态显示为-未配置任何操作,这很奇怪,因为我确定在从API返回了promise后就已经设置了变量。< / p>
因此,似乎该组件未接受新值。
我已尝试在按建议here返回承诺后设置道具,甚至尝试在按建议here返回承诺后重新渲染上传组件,但仍然收到相同的消息
我的方法可能有什么问题。
答案 0 :(得分:0)
通过设置文件级属性putAction
来使其正常工作
如下所示-
methods: {
inputFilter(newFile, oldFile, prevent) {
if (newFile && !oldFile) {
if (doesNotPassTheFilter) {
return prevent();
}
else {
return this.$store.dispatch('getSignedUrl').then((url) => {
newFile.putAction = url;
});
}
}
}