java - S3上传String的用户元数据列表
问题描述
我目前正在使用 Java 进行 S3 上传,我将向文件添加一组用户元数据。我试图了解,如果我可以将字符串列表添加到用户元数据中的参数之一。
我当前的代码片段如下 -
ObjectMetadata objectMetadata = new ObjectMetadata();
Map<String, Object> userMetadata = new HashMap<String, Object>();
userMetadata.put("a", "a1");
userMetadata.put("b", "b1");
List<String> c = new ArrayList<String>();
c.add("c1");
c.add("c2");
userMetadata.put("c", c);
objectMetadata.setUserMetadata(userMetadata);
但是,我在“ objectMetadata.setUserMetadata(userMetadata); ”行收到编译时错误
解决方案
setUserMetadata
需要 a Map<String, String>
,而不是Map<String, Object>
你所拥有的 - 所以你不能直接在那里使用列表。例如,您可以加入它:
Map<String, String> userMetadata = new HashMap<>(); // Note the type!
userMetadata.put("a", "a1");
userMetadata.put("b", "b1");
List<String> c = new ArrayList<>();
c.add("c1");
c.add("c2");
userMetadata.put("c", String.join(",", c); // list is joined when added to the map
objectMetadata.setUserMetadata(userMetadata);
推荐阅读
- spring - @RestController 返回空白
- laravel - Laravel Eloquent 可以递增 ($collection->increment('field')) 失败吗?
- java - Azure SQL:连接的错误代码是关闭异常的
- vbscript - 理解这个比较函数(VBScript)
- java - DOM4J utf-8 编码变音符号(Ä,ü,ß) 不正确
- chart.js - ChartJS - 自定义 Y 轴上的刻度/标签
- mysql - 使用带有或的选择插入
- reactjs - Ant Design & Webpack 不加载 css
- android - 了解 Android Vitals 在 Play 商店控制台中提供的 ANR 日志
- vba - 将 .docx 中的字符串替换为 Excel 中的值,保留 Excel 大写