簡體   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