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

问题描述 投票:0回答:1

我正在寻找一种为org.springframework.core.io.Resource对象分配/设置文件名的方法。该对象没有执行此操作的功能。在我的情况下,getFileName方法返回一个null

我不想从Resource对象创建一个multipartfile,因为我的Open API规范不接受它。

java spring spring-boot
1个回答
0
投票

我是这样实现的

//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();
                    }
                };
© www.soinside.com 2019 - 2024. All rights reserved.