我是 Tavern 的新手,我正在为 AWS API Gateway 应用程序实施测试。
就我而言,我使用预先签名的 URL 将文件直接上传到 S3 存储桶。预签名 URL 由以下属性构成:
url = 'https://<bucket>.s3.amazonaws.com/'
fields:
key=<filename>.zip
x-amz-algorithm=***
x-amz-credential=***
x-amz-date=***
x-amz-security-token=***
policy=***
x-amz-signature=***
在普通的 cURL 请求中,这将按如下方式使用:
curl -v \
-F key=<filename>.zip \
-F x-amz-algorithm=*** \
-F x-amz-credential=*** \
-F x-amz-date=*** \
-F x-amz-security-token=*** \
-F policy=*** \
-F x-amz-signature=*** \
-F file=@<filename>.zip \
'https://<bucket>.s3.amazonaws.com/'
如您所见,有必要使用构成POST 请求的-F
标志。cURL
multipart/form-data
在Tavern
方法中,正如我所读到的,-F
相当于files
,所以这将如下所示:
stages:
- name: UPLOAD A FILE TO S3
request:
method: POST
url: "https:/<bucket>.s3.amazonaws.com/"
files:
key: target.zip
x-amz-algorithm: ***
x-amz-credential: ***
x-amz-date: ***
x-amz-security-token: ***
policy: ***
x-amz-signature: ***
file: '@target.zip'
response:
status_code: 200
但它因错误而失败:
Error: <value of x-amz-algorithm> file not found
所以它将字段视为文件,因此它失败了。
是否有可能在这种情况下实施Tavern
,所以我的实施在某处是错误的,或者这还不可能Tavern
?
亲切的问候,
沙德
试试这个:
stages:
- name: UPLOAD A FILE TO S3
request:
method: POST
url: "https:/<bucket>.s3.amazonaws.com/"
data:
key: target.zip
x-amz-algorithm: ***
x-amz-credential: ***
x-amz-date: ***
x-amz-security-token: ***
policy: ***
x-amz-signature: ***
files:
file: "target.zip"
response:
status_code: 200
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句