繁体   English   中英

为 org.springframework.core.io.Resource 对象分配名称

[英]Assigning name to a org.springframework.core.io.Resource object

我正在寻找一种将文件名分配/设置给org.springframework.core.io.Resource对象的方法。 该对象没有可用于执行此操作的函数。 在我的例子中, getFileName方法返回一个null

我不想从 Resource 对象创建多部分文件,因为我的 Open API 规范不接受它。

我是这样实现的

//Retrieved the object from S3
S3Object s3Object = amazonS3client.getObject(s3Config.getBucket(), key);
S3ObjectInputStream objectInputStream = s3Object.getObjectContent();
String fileName = s3Object.getObjectMetadata().getUserMetaDataOf("fileName");

//create a ByteArrayResource from the input stream and assigned the fileName
ByteArrayResource fileAsResource = new ByteArrayResource(IOUtils.toByteArray(objectInputStream)) {
                    @Override
                    public String getFilename() {
                        return fileName;
                    }

                    @Override
                    public long contentLength() {
                        return s3Object.getObjectMetadata().getContentLength();
                    }
                };

像这样添加标头后获取 url 的标头缺少文件名将解决此问题

 s3Object.getObjectMetadata().setHeader("fileName","page-1-tables.csv");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM