java - 读取和写入 Amazon s3 存储桶中的文件
问题描述
我需要sample.csv
从 Amazon S3 存储桶中读取一个大(>15mb)文件(比如)。然后,我需要处理存在的数据sample.csv
并将其写入 S3 存储桶中的另一个目录。我打算使用 AWS Lambda 函数来运行我的 java 代码。
作为第一步,我开发了在本地系统上运行的 java 代码。Java 代码从 S3 存储桶中读取sample.csv
文件,我使用该put
方法将数据写回 S3 存储桶。但我发现只有最后一行被处理并放回。
Region clientRegion = Region.Myregion;
AwsBasicCredentials awsCreds = AwsBasicCredentials.create("myAccessId","mySecretKey");
S3Client s3Client = S3Client.builder().region(clientRegion).credentialsProvider(StaticCredentialsProvider.create(awsCreds)).build();
ResponseInputStream<GetObjectResponse> s3objectResponse = s3Client.getObject(GetObjectRequest.builder().bucket(bucketName).key("Input/sample.csv").build());
BufferedReader reader = new BufferedReader(new InputStreamReader(s3objectResponse));
String line = null;
while ((line = reader.readLine()) != null) {
s3Client.putObject(PutObjectRequest.builder().bucket(bucketName).key("Test/Testout.csv").build(),RequestBody.fromString(line));
}
示例:sample.csv 包含
1,sam,21,java,beginner;
2,tom,28,python,practitioner;
3,john,35,c#,expert.
我的输出应该是
1,mas,XX,java,beginner;
2,mot,XX,python,practitioner;
3,nhoj,XX,c#,expert.
但只3,nhoj,XX,c#,expert
写在Testout.csv
.
解决方案
推荐阅读
- java - 我可以写位于类路径的文件吗
- python - mypy 类型问题 - 可能的重载变体
- css - React Native 角样式 FlatList 组件
- postgresql - 当我恢复我的数据时,我使用 pg_restore 但它给了我错误我尝试了所有解决方案
- priority-web-sdk - webSdk 过程的参数顺序
- playframework - 如何将 Source[String, Future[IOResult]] 转换为 Source[ByteString, Future[IOResult]]
- python - Django React Python Post 请求图像分类
- azure - IaC Azure 自动化
- spacy - 如何使用 Spacy Matcher 松散匹配单词之间的异常
- c# - Blazor 中的程序元素引用