阻止httpclient在调用预签名URL时添加服务器URL

时间:2019-05-09 13:20:20

标签: amazon-s3 jhipster angular-httpclient

我有一个JHipster生成的角度前端。与该应用程序相关的所有媒体都存储在AWS S3上。要获取或上传媒体,客户端会要求后端提供预先签名的网址。然后,它应该使用该预签名的URL来检索媒体。

问题是,http请求受到某种方式的操纵,总是将网关主机域添加到预签名的url之前。

应将媒体上传到s3的功能:

    private save(presignedUri: string, file: File): Observable<HttpEvent<any>> {
        const formData: FormData = new FormData();
        formData.append('file', file);

        const headers = new HttpHeaders()
            .set('Content-Type', `${file.type}; charset=utf-8`);

        const req = new HttpRequest('POST', presignedUri, formData, {
            reportProgress: true,
            responseType: 'text',
            headers
        });

        return this.http.request(req);
    }

我希望它只使用给定的预签名url,而是尝试使用http://localhost:9001/%22https://s3.eu-central-1.amazonaws.com/19fa8b4d-av…gnature=6c96de...

请求

1 个答案:

答案 0 :(得分:0)

您导航到的URL以"(在URL中显示为%22)开头,这导致请求将URL附加到现有URL上,而不是直接请求。如果网址以http://https:////开头,它将正常工作。