5.6. 사용법
예를 들어 버킷 helloBucket
에서 hello.txt
파일을 읽으려면 다음 스니펫을 사용합니다.
from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt") .to("file:/var/downloaded");
from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
.to("file:/var/downloaded");
5.6.1. S3 프로듀서에서 평가한 메시지 헤더 링크 복사링크가 클립보드에 복사되었습니다!
header | 유형 | 설명 |
---|---|---|
|
| 이 오브젝트가 저장되거나 현재 작업에 사용될 버킷 이름 |
|
| 현재 작업에 사용할 버킷 대상 이름 |
|
| 이 오브젝트의 콘텐츠 길이입니다. |
|
| 이 오브젝트의 콘텐츠 유형입니다. |
|
| 이 개체의 콘텐츠 컨트롤입니다. |
|
| 이 개체의 콘텐츠 배열입니다. |
|
| 이 개체의 콘텐츠 인코딩입니다. |
|
| 이 오브젝트의 md5 체크섬입니다. |
|
| 현재 작업에 사용할 대상 키입니다. |
|
| 이 개체가 저장되거나 현재 작업에 사용될 키 |
|
| 이 오브젝트의 마지막으로 수정된 타임스탬프입니다. |
|
| 수행할 작업입니다. 허용된 값은 copyObject, deleteObject, listBuckets, deleteBucket, listObjects입니다. |
|
| 이 오브젝트의 스토리지 클래스입니다. |
|
|
canned acl that will be applied to the object. see |
|
|
잘 구성된 Amazon S3 액세스 제어 목록 오브젝트. 자세한 내용은 |
| 문자열 | AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘을 설정합니다. 예를 들어 AES256을 사용합니다. |
|
| 현재 작업에서 저장 또는 반환할 오브젝트의 버전 Id |
|
| S3에서 오브젝트와 함께 저장할 메타데이터 맵입니다. 메타데이터에 대한 자세한 내용 |
5.6.2. S3 생산자가 설정한 메시지 헤더 링크 복사링크가 클립보드에 복사되었습니다!
header | 유형 | 설명 |
---|---|---|
|
| 새로 업로드된 오브젝트의 ETag 값입니다. |
|
| 새로 업로드된 오브젝트의 선택적 버전 ID입니다. |
5.6.3. S3 소비자가 설정한 메시지 헤더 링크 복사링크가 클립보드에 복사되었습니다!
header | 유형 | 설명 |
---|---|---|
|
| 이 오브젝트가 저장되는 키입니다. |
|
| 이 오브젝트가 포함된 버킷의 이름입니다. |
|
| RFC 1864에 따른 관련 오브젝트의 16진수 인코딩 128비트 MD5 다이제스트입니다. 이 데이터는 무결성 검사로 사용되어 호출자가 수신한 데이터가 Amazon S3에서 보낸 데이터와 동일한지 확인합니다. |
|
| Amazon S3가 마지막으로 관련 오브젝트에 대한 수정 사항을 기록한 날짜와 시간을 나타내는 Last-Modified 헤더 값입니다. |
|
| 사용 가능한 경우 관련 Amazon S3 오브젝트의 버전 ID입니다. 버전 ID는 오브젝트가 오브젝트가 활성화된 Amazon S3 버킷에 업로드된 경우에만 오브젝트에 할당됩니다. |
|
| Content-Type HTTP 헤더는 연결된 오브젝트에 저장된 콘텐츠 유형을 나타냅니다. 이 헤더의 값은 표준 MIME 유형입니다. |
|
| RFC 1864에 따라 연결된 오브젝트의 base64 인코딩 128비트 MD5 다이제스트(내용 - 헤더 포함)입니다. 이 데이터는 메시지 무결성 검사로 사용되어 Amazon S3에서 수신한 데이터가 호출자가 전송한 데이터와 동일한지 확인합니다. |
|
| 연결된 오브젝트의 크기를 바이트 단위로 나타내는 Content-Length HTTP 헤더입니다. |
|
| 선택적 Content-Encoding HTTP 헤더는 개체에 적용된 콘텐츠 인코딩과 Content-Type 필드에서 참조하는 미디어 유형을 가져오기 위해 어떤 디코딩 메커니즘을 적용해야 하는지 지정합니다. |
|
| 오브젝트를 저장할 권장 파일 이름과 같은 프레젠테이션 정보를 지정하는 선택적 Content-Disposition HTTP 헤더입니다. |
|
| 사용자가 HTTP 요청/다시 체인에 따라 캐싱 동작을 지정할 수 있는 선택적 Cache-Control HTTP 헤더입니다. |
| 문자열 | AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘입니다. |
|
| 오브젝트와 S3에 저장된 메타데이터 맵입니다. 메타데이터에 대한 자세한 내용 |
5.6.4. S3 Producer 작업 링크 복사링크가 클립보드에 복사되었습니다!
Camel-AWS2-S3 구성 요소는 프로듀서 측에서 다음 작업을 제공합니다.
- copyObject
- deleteObject
- listBuckets
- deleteBucket
- listObjects
- GetObject(S3Object 인스턴스 반환)
- getObjectRange(S3Object 인스턴스 반환)
- createDownloadLink
작업을 명시적으로 지정하지 않으면 생산자가 수행합니다. - 단일 파일 업로드 - multiPartUpload 옵션이 활성화된 경우 다중 파트 업로드.
5.6.5. 고급 AmazonS3 구성 링크 복사링크가 클립보드에 복사되었습니다!
Camel 애플리케이션이 방화벽 뒤에서 실행 중이거나 S3Client
인스턴스 구성을 더 많이 제어해야 하는 경우 자체 인스턴스를 생성하고 Camel aws2-s3 구성 요소 구성에서 이를 참조할 수 있습니다.
from("aws2-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5") .to("mock:result");
from("aws2-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
5.6.6. S3 구성 요소와 함께 KMS 사용 링크 복사링크가 클립보드에 복사되었습니다!
AWS KMS를 사용하여 AWS 인프라를 사용하여 데이터를 암호화/암호화하려면 다음 예제와 같이 2.21.x에 도입된 옵션을 사용할 수 있습니다.
from("file:tmp/test?fileName=test.txt") .setHeader(S3Constants.KEY, constant("testFile")) .to("aws2-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
from("file:tmp/test?fileName=test.txt")
.setHeader(S3Constants.KEY, constant("testFile"))
.to("aws2-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
이렇게 하면 S3에 요청하여 KMS 키 3f0637ad-296a-3dfe-a796-e60654fb128c를 사용하여 test.txt 파일을 암호화합니다. 이 파일을 다운로드하도록 요청하면 암호 해독이 다운로드되기 전에 직접 수행됩니다.
5.6.7. 정적 자격 증명 대 기본 인증 정보 공급자 링크 복사링크가 클립보드에 복사되었습니다!
useDefaultCredentialsProvider 옵션을 지정하고 true로 설정하여 명시적 정적 인증 정보 사용을 방지할 수 있습니다.
- Java 시스템 속성 - aws.accessKeyId 및 aws.secretKey
- 환경 변수 - AWS_ACCESS_KEY_ID 및 AWS_SECRET_ACCESS_KEY.
- AWS STS의 웹 ID 토큰.
- 공유 인증 정보 및 구성 파일입니다.
- Amazon ECS 컨테이너 인증 정보 - 환경 변수 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI가 설정된 경우 Amazon ECS에서 로드됩니다.
- Amazon EC2 인스턴스 프로필 자격 증명.
이에 대한 자세한 내용은 AWS 인증 정보 문서를 참조하십시오.
5.6.8. S3 Producer 작업 예 링크 복사링크가 클립보드에 복사되었습니다!
- 단일 업로드: 이 작업은 본문 내용을 기반으로 파일을 S3에 업로드합니다.
이 작업은 mycamelbucket 버킷에 "Camel Pauls!" 컨텐츠와 함께 file camel.txt를 업로드합니다.
- Multipart Upload: 이 작업은 본문 내용을 기반으로 S3에 다중 파트 업로드를 수행합니다.
이 작업은 mycamelbucket 버킷의 파일ECDHE/empty.txt 내용을 기반으로 empty.txt 파일의 다중 파트 업로드를 수행합니다.
- CopyObject: 이 작업은 하나의 버킷에서 다른 버킷으로 오브젝트를 복사합니다.
이 작업은 헤더 camelDestinationKey에 표시된 이름으로 오브젝트를 버킷 mycamelbucket에서 camelDestinationBucket에 복사합니다.
- DeleteObject: 이 작업은 버킷에서 오브젝트를 삭제합니다.
이 작업은 버킷 mycamelbucket에서 오브젝트 camelKey를 삭제합니다.
- ListBuckets: 이 작업은 이 리전에서 이 계정의 버킷을 나열합니다.
from("direct:start") .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listBuckets") .to("mock:result");
from("direct:start")
.to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listBuckets")
.to("mock:result");
이 작업은 이 계정의 버킷을 나열합니다.
- DeleteBucket: 이 작업은 URI 매개변수 또는 헤더로 지정된 버킷을 삭제합니다.
from("direct:start") .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteBucket") .to("mock:result");
from("direct:start")
.to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteBucket")
.to("mock:result");
이 작업은 버킷 mycamelbucket을 삭제합니다.
- ListObjects: 이 작업 목록 오브젝트를 특정 버킷의
from("direct:start") .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listObjects") .to("mock:result");
from("direct:start")
.to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listObjects")
.to("mock:result");
이 작업은 mycamelbucket 버킷에 오브젝트가 나열됩니다.
- GetObject: 이 작업은 특정 버킷에 단일 개체를 가져옵니다.
이 작업은 mycamelbucket 버킷의 camelKey 오브젝트와 관련된 S3Object 인스턴스를 반환합니다.
- GetObjectRange: 이 작업은 특정 버킷에 단일 개체 범위를 가져옵니다.
이 작업은 mycamelbucket 버킷의 camelKey 오브젝트와 관련된 S3Object 인스턴스를 반환하고 0에서 9까지의 바이트를 포함합니다.
- CreateDownloadLink: 이 작업은 S3 Presigner를 통해 다운로드 링크를 반환합니다.
이 작업은 버킷 mycamelbucket 및 region 리전에 camel-key 파일에 대한 다운로드 링크 URL을 반환합니다.