Amazon S3에 일괄 업로드를 수행 할 수 있습니까?
Amazon S3는 일괄 업로드를 지원합니까? 나는 매일 밤 최대 100K 파일을 업로드해야하는 작업이 있는데, 최대 1G까지 가능하지만 작은 파일로 치우쳐 있습니다 (90 %는 100 바이트 미만이고 99 %는 1000 바이트 미만).
s3 API는 단일 HTTP 호출에서 여러 객체 업로드를 지원합니까?
모든 객체는 S3에서 개별 객체로 사용할 수 있어야합니다. 다른 곳 (FTP 등) 또는 다른 형식 (데이터베이스, EC2 로컬 드라이브 등)으로 호스팅 할 수 없습니다. 그것은 제가 변경할 수없는 외부 요구 사항입니다.
s3 API는 단일 HTTP 호출에서 여러 객체 업로드를 지원합니까?
아니요, S3 PUT 작업 은 HTTP 요청 당 하나의 객체 업로드 만 지원합니다.
원격 버킷과 동기화하려는 머신에 S3 도구 를 설치 하고 다음 명령을 실행할 수 있습니다.
s3cmd sync localdirectory s3://bucket/
그런 다음이 명령을 스크립트에 넣고 매일 밤이 명령을 실행하도록 예약 된 작업을 만들 수 있습니다.
이것은 당신이 원하는 것을해야합니다.
이 도구는 MD5 해시 및 파일 크기를 기반으로 파일 동기화를 수행하므로 충돌이 거의 발생하지 않습니다 (원하는 경우 "s3cmd put"명령을 사용하여 대상 버킷의 객체를 강제로 덮어 쓸 수 있음).
편집 : 또한 S3 도구에 대해 링크 한 사이트의 설명서를 읽으십시오. 로컬에서 삭제 된 파일을 버킷에서 삭제하거나 무시할 것인지 여부에 대해 필요한 다른 플래그가 있습니다.
또는 sync 명령을 사용하여 AWS CLI 도구 를 통해 S3를 업로드 할 수 있습니다 .
aws s3 sync local_folder s3 : // bucket-name
이 방법을 사용하여 S3에 파일을 매우 빠르게 일괄 업로드 할 수 있습니다.
모든 사람이 말하는 내용을 추가하기 위해 모든 파일을 단일 디렉토리에 넣지 않고도 Java 코드 (CLI 대신)가이 작업을 수행하도록하려면 업로드 할 파일 목록을 만든 다음 제공 할 수 있습니다. 목록을 AWS TransferManager의 uploadFileList 메서드에 추가합니다.
하나의 파일 (또는 파일의 일부) = 하나의 HTTP 요청이지만 이제 Java API는 TransferManager 를 사용하여 멀티 스레딩을 직접 작성할 필요없이 효율적인 다중 파일 업로드를 지원합니다.
Java 프로그램을 사용하려면 다음을 수행하십시오.
public void uploadFolder(String bucket, String path, boolean includeSubDirectories) {
File dir = new File(path);
MultipleFileUpload upload = transferManager.uploadDirectory(bucket, "", dir, includeSubDirectories);
try {
upload.waitForCompletion();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
테스트를 원하는 경우 로컬 S3에 연결하기위한 s3client 및 전송 관리자 생성은 다음과 같습니다.
AWSCredentials credentials = new BasicAWSCredentials(accessKey, token);
s3Client = new AmazonS3Client(credentials); // This is deprecated but you can create using standard beans provided by spring/aws
s3Client.setEndpoint("http://127.0.0.1:9000");//If you wish to connect to local S3 using minio etc...
TransferManager transferManager = TransferManagerBuilder.standard().withS3Client(s3Client).build();
참고 URL : https://stackoverflow.com/questions/15050146/is-it-possible-to-perform-a-batch-upload-to-amazon-s3
'IT TIP' 카테고리의 다른 글
ggplot2에서 글꼴 수정 (0) | 2020.12.12 |
---|---|
node.js로 데스크톱 애플리케이션을 만들 수 있습니까? (0) | 2020.12.12 |
명령 줄을 사용하여 비공개 github 리포지토리에서 단일 원시 파일을 다운로드하려면 어떻게해야합니까? (0) | 2020.12.11 |
na.rm이있는 dplyr summarise_each (0) | 2020.12.11 |
Webstorm은 node.js로 매우 느려집니다. (0) | 2020.12.11 |