我正在使用预先签名的URL将文件上传到S3。我正在这样的打字稿中构造我的PUT请求:
const headers = new HttpHeaders({'Content-Type': 'text/csv'});
return new HttpRequest('PUT',presignedUrl,pathToLocalFile,{
headers: headers,
reportProgress: true,
});
然后,我订阅可观察的HTTP来获取HttpEvent,并对其进行适当处理(因为我已启用reportProgress)。这一切都可以,但是奇怪的是,在Chrome中,事件遵循以下模式:
Sent
UploadProgress
UploadProgress
... repeat until finished upload
Response
在Firefox中,上传相同的文件,则事件如下所示:
Sent
UploadProgress
UploadProgress
... repeat until finished upload
ResponseHeader
DownloadProgress
Response
为什么在Firefox中又添加了两个事件?为什么我要在世界上进行“下载进度”活动?我还应该注意,除了类型之外,ResponseHeader和Response事件是相同的,而DownloadProgress事件在其他方面是无害的(我相信它只显示0的进度)。