Flutter Dio Multipart请求中S3存储的图片文件名确认
问题解答
最终保存到S3的文件名是flower_one.jpg。
原因如下:
- Dio的
MultipartFile.fromFile方法中,filename参数的作用就是指定该文件在multipart/form-data请求中的文件名,它会覆盖本地文件的原始名称。 - 当你发起上传请求时,这个指定的
flower_one.jpg会被包含在请求头的Content-Disposition字段里,S3在处理这类上传请求时,默认会读取这个字段里的文件名作为存储到桶中的文件名。
结合你的代码示例:
MultipartFile.fromFile("path+flower.png", filename: "flower_one.jpg")
这里明确设置了上传时使用的文件名是flower_one.jpg,所以S3会以此作为最终存储的文件名,而非本地文件的flower.png。
补充:如果你的后端服务在接收上传后有额外的文件名修改逻辑(比如自定义命名规则),那最终文件名可能会被改变;但如果是通过预签名URL直接从客户端上传到S3,那么一定会使用你指定的这个filename。
内容的提问来源于stack exchange,提问作者BC TUBE
相关产品推荐
相关产品推荐

