首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从java中列表中的每个文件中获取文件名的一部分。

从java中列表中的每个文件中获取文件名的一部分。
EN

Stack Overflow用户
提问于 2018-11-28 12:59:05
回答 1查看 36关注 0票数 0

我使用uploadFileList()将列表中的文件上传到S3中,因此此接口以列表(记录)作为参数,如下所示

代码语言:javascript
复制
MultipleFileUpload xfer = tm.uploadFileList(bucketName, "TEST",new File(fileLocation), records);

这样的列表中的记录

代码语言:javascript
复制
21564_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz
21224_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz
20780_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz
20407_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz

到目前为止,它工作得很好。现在我需要在API中添加前缀,因为文件名的前四个数字,如21564,将是第一个文件的前缀,因此为了做到这一点,我必须迭代列表并逐个文件添加,但这将减慢上传到S3的速度,与上传列表相比。

有没有办法添加前缀,同时上传列表到S3中的文件是随机的,但模式是固定的?

EN

回答 1

Stack Overflow用户

发布于 2018-11-28 13:57:36

请参阅有关object keys的S3文档。因为S3存储桶是平面的(不是文件系统层次结构),所以您可以告诉亚马逊用于您上传的文件的关键前缀,从而将它们都分组到同一个前缀下。例如,我可以提供"MovieReviews/“作为文件列表的前缀,S3中得到的对象键将以此开头。一些工具可以识别斜杠,并允许您将S3存储桶作为目录层次结构进行浏览。

在您的例子中,如果文件应该使用前N个字符作为分组关键字,那么您可以通过首先根据该子字符串进行分组来批量上传它们,例如fileList.stream().collect(Collectors.groupingBy(s -> s.substring(0, N)))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53512421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档