java - 如何在不本地创建 csv 文件的情况下将员工列表作为 csv 文件上传到 s3?
问题描述
我有一个数据列表List<Employee> employeeList
我实际上将数据作为包含存储在 s3 中的 JSON 对象的文本文件(在示例文件下方提供)。
{"Id":"ab12","firstName":"abc","lastName":"xyz"}
{"Id":"pq34","firstName":"pqr","lastName":"mn"}
我可以使用以下代码片段读取并存储在列表中:
S3Object s3Object = s3Client.getObject(new GetObjectRequest(s3BucketName, fileKey));
S3ObjectInputStream s3Stream = s3Object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(s3Stream, StringUtils.UTF8));
List<Employee> employeeList=null;
while ((line = reader.readLine()) != null) {
Employee employee = objectMapper.readValue(line, Employee.class);
employeeList.add(employee);
}
我创建了一个 Employee 类,如下所示:
public class Employee {
String Id;
String firstName;
String lastName;
}
我不想在本地创建任何文件。我想将我的数据作为 .csv 文件直接写入 S3 Bucket,如下所示。(名称为firstName+lastName
)
Id Name
----------------
ab12 abc xyz
pq34 pqr mn
我遇到的一件事是我们可以将数据作为 InputStream 写入,然后将其传递给 -PutObjectRequest。但 InputStream 也采用我不想创建临时文件的文件路径。
PutObjectRequest putObj = new PutObjectRequest(bucketName, KeyName, inputStream, metadata);
s3client.putObject(putObj);
另一个疑问是关于上传的 csv 文件的格式是否需要像上述格式一样。我也遇到过,CSV writer
但不知道怎么用。
有人可以帮我解决上述问题并在可能的情况下提供示例代码片段吗?
解决方案
推荐阅读
- php - 在 Woocommerce 购物车页面上移动运费计算器
- highcharts - 折线图中系列颜色的高图表不透明度不活动
- php - Laravel: Make a Public Profile Page
- web-scraping - 用 BeautifulSoup 刮表——Python
- java - 理解 java play 中的异步调用
- reactjs - 使用 React 并尝试使用 axios 发布数据 - 出现空对象
- xamarin.forms - ACR.UserDialogs UWP Toast 总是显示在左上角
- apache-spark - spark在mesos之上运行-集群模式-aws实例EC2(1主1从)
- pandas - pandas 条件分组和计数值
- suds - suds 在 python3.8 中失败