AWS S3 createPresignedPost与getSignedUrl。我应该使用哪一个从客户端上传各种文件?

Joo*_*oon 4 file-upload amazon-s3 amazon-web-services aws-sdk

在S3文档上,有createPresignedPostgetSignedUrl

在getSignedUrl上:

注意:使用预签名URL时,不支持所有操作参数。发送请求时,必须提供某些参数(例如SSECustomerKey,ACL,Expires,ContentLength或Tagging)作为标头。如果您使用预签名URL从浏览器上载并且需要使用这些字段,请参见createPresignedPost()。

是createPresignedPost只是getSignedUrl的更可定制的版本吗?它在下面做同样的事情吗?

kwa*_*ski 5

如果要限制用户上传超出特定大小的文件,则应使用createPresigendPost,并指定ContentLength

使用getSignedUrl时,对象大小没有限制,用户可以将5TB对象(当前对象限制)上载到s3


请注意,如果您可以在调用getSignedUrl('putObject',params,callback)时在params中指定ContentLength,则会被抛出

Presigning post data encountered an error { UnexpectedParameter: ContentLength is not supported in pre-signed URLs.
Run Code Online (Sandbox Code Playgroud)

有一个问题,在这个问题上

  • 我只是不明白“getSignedUrl”背后的基本原理。如果您无法限制用户上传文件的大小,那还有什么意义呢? (2认同)