5.6. 사용법


예를 들어 버킷 helloBucket 에서 hello.txt 파일을 읽으려면 다음 스니펫을 사용합니다.

from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
  .to("file:/var/downloaded");
Copy to Clipboard Toggle word wrap

5.6.1. S3 프로듀서에서 평가한 메시지 헤더

Expand
header유형설명

CamelAwsS3BucketName

문자열

이 오브젝트가 저장되거나 현재 작업에 사용될 버킷 이름

CamelAwsS3BucketDestinationName

문자열

현재 작업에 사용할 버킷 대상 이름

CamelAwsS3ContentLength

long

이 오브젝트의 콘텐츠 길이입니다.

CamelAwsS3ContentType

문자열

이 오브젝트의 콘텐츠 유형입니다.

CamelAwsS3ContentControl

문자열

이 개체의 콘텐츠 컨트롤입니다.

CamelAwsS3ContentDisposition

문자열

이 개체의 콘텐츠 배열입니다.

CamelAwsS3ContentEncoding

문자열

이 개체의 콘텐츠 인코딩입니다.

CamelAwsS3ContentMD5

문자열

이 오브젝트의 md5 체크섬입니다.

CamelAwsS3DestinationKey

문자열

현재 작업에 사용할 대상 키입니다.

CamelAwsS3Key

문자열

이 개체가 저장되거나 현재 작업에 사용될 키

CamelAwsS3LastModified

java.util.Date

이 오브젝트의 마지막으로 수정된 타임스탬프입니다.

CamelAwsS3Operation

문자열

수행할 작업입니다. 허용된 값은 copyObject, deleteObject, listBuckets, deleteBucket, listObjects입니다.

CamelAwsS3StorageClass

문자열

이 오브젝트의 스토리지 클래스입니다.

CamelAwsS3CannedAcl

문자열

canned acl that will be applied to the object. see software.amazon.awssdk.services.s3.model.ObjectCannedACL for allowed values.

CamelAwsS3Acl

software.amazon.awssdk.services.s3.model.BucketCannedACL

잘 구성된 Amazon S3 액세스 제어 목록 오브젝트. 자세한 내용은 software.amazon.awssdk.services.s3.model.BucketCannedACL 을 참조하십시오.

CamelAwsS3ServerSideEncryption

문자열

AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘을 설정합니다. 예를 들어 AES256을 사용합니다.

CamelAwsS3VersionId

문자열

현재 작업에서 저장 또는 반환할 오브젝트의 버전 Id

CamelAwsS3Metadata

Map<String, String>

S3에서 오브젝트와 함께 저장할 메타데이터 맵입니다. 메타데이터에 대한 자세한 내용

5.6.2. S3 생산자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsS3ETag

문자열

새로 업로드된 오브젝트의 ETag 값입니다.

CamelAwsS3VersionId

문자열

새로 업로드된 오브젝트의 선택적 버전 ID입니다.

5.6.3. S3 소비자가 설정한 메시지 헤더

Expand
header유형설명

CamelAwsS3Key

문자열

이 오브젝트가 저장되는 키입니다.

CamelAwsS3BucketName

문자열

이 오브젝트가 포함된 버킷의 이름입니다.

CamelAwsS3ETag

문자열

RFC 1864에 따른 관련 오브젝트의 16진수 인코딩 128비트 MD5 다이제스트입니다. 이 데이터는 무결성 검사로 사용되어 호출자가 수신한 데이터가 Amazon S3에서 보낸 데이터와 동일한지 확인합니다.

CamelAwsS3LastModified

날짜

Amazon S3가 마지막으로 관련 오브젝트에 대한 수정 사항을 기록한 날짜와 시간을 나타내는 Last-Modified 헤더 값입니다.

CamelAwsS3VersionId

문자열

사용 가능한 경우 관련 Amazon S3 오브젝트의 버전 ID입니다. 버전 ID는 오브젝트가 오브젝트가 활성화된 Amazon S3 버킷에 업로드된 경우에만 오브젝트에 할당됩니다.

CamelAwsS3ContentType

문자열

Content-Type HTTP 헤더는 연결된 오브젝트에 저장된 콘텐츠 유형을 나타냅니다. 이 헤더의 값은 표준 MIME 유형입니다.

CamelAwsS3ContentMD5

문자열

RFC 1864에 따라 연결된 오브젝트의 base64 인코딩 128비트 MD5 다이제스트(내용 - 헤더 포함)입니다. 이 데이터는 메시지 무결성 검사로 사용되어 Amazon S3에서 수신한 데이터가 호출자가 전송한 데이터와 동일한지 확인합니다.

CamelAwsS3ContentLength

long

연결된 오브젝트의 크기를 바이트 단위로 나타내는 Content-Length HTTP 헤더입니다.

CamelAwsS3ContentEncoding

문자열

선택적 Content-Encoding HTTP 헤더는 개체에 적용된 콘텐츠 인코딩과 Content-Type 필드에서 참조하는 미디어 유형을 가져오기 위해 어떤 디코딩 메커니즘을 적용해야 하는지 지정합니다.

CamelAwsS3ContentDisposition

문자열

오브젝트를 저장할 권장 파일 이름과 같은 프레젠테이션 정보를 지정하는 선택적 Content-Disposition HTTP 헤더입니다.

CamelAwsS3ContentControl

문자열

사용자가 HTTP 요청/다시 체인에 따라 캐싱 동작을 지정할 수 있는 선택적 Cache-Control HTTP 헤더입니다.

CamelAwsS3ServerSideEncryption

문자열

AWS 관리 키를 사용하여 오브젝트를 암호화할 때 서버 측 암호화 알고리즘입니다.

CamelAwsS3Metadata

Map<String, String>

오브젝트와 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");
Copy to Clipboard Toggle word wrap

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");
Copy to Clipboard Toggle word wrap

이렇게 하면 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에 업로드합니다.
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camel.txt");
          exchange.getIn().setBody("Camel rocks!");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 mycamelbucket 버킷에 "Camel Pauls!" 컨텐츠와 함께 file camel.txt를 업로드합니다.

  • Multipart Upload: 이 작업은 본문 내용을 기반으로 S3에 다중 파트 업로드를 수행합니다.
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(AWS2S3Constants.KEY, "empty.txt");
          exchange.getIn().setBody(new File("src/empty.txt"));
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&multiPartUpload=true&autoCreateBucket=true&partSize=1048576")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 mycamelbucket 버킷의 파일ECDHE/empty.txt 내용을 기반으로 empty.txt 파일의 다중 파트 업로드를 수행합니다.

  • CopyObject: 이 작업은 하나의 버킷에서 다른 버킷으로 오브젝트를 복사합니다.
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.BUCKET_DESTINATION_NAME, "camelDestinationBucket");
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
          exchange.getIn().setHeader(S3Constants.DESTINATION_KEY, "camelDestinationKey");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=copyObject")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 헤더 camelDestinationKey에 표시된 이름으로 오브젝트를 버킷 mycamelbucket에서 camelDestinationBucket에 복사합니다.

  • DeleteObject: 이 작업은 버킷에서 오브젝트를 삭제합니다.
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteObject")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 버킷 mycamelbucket에서 오브젝트 camelKey를 삭제합니다.

  • ListBuckets: 이 작업은 이 리전에서 이 계정의 버킷을 나열합니다.
  from("direct:start")
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listBuckets")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 이 계정의 버킷을 나열합니다.

  • DeleteBucket: 이 작업은 URI 매개변수 또는 헤더로 지정된 버킷을 삭제합니다.
  from("direct:start")
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteBucket")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 버킷 mycamelbucket을 삭제합니다.

  • ListObjects: 이 작업 목록 오브젝트를 특정 버킷의
  from("direct:start")
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listObjects")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 mycamelbucket 버킷에 오브젝트가 나열됩니다.

  • GetObject: 이 작업은 특정 버킷에 단일 개체를 가져옵니다.
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObject")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 mycamelbucket 버킷의 camelKey 오브젝트와 관련된 S3Object 인스턴스를 반환합니다.

  • GetObjectRange: 이 작업은 특정 버킷에 단일 개체 범위를 가져옵니다.
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
          exchange.getIn().setHeader(S3Constants.RANGE_START, "0");
          exchange.getIn().setHeader(S3Constants.RANGE_END, "9");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObjectRange")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 mycamelbucket 버킷의 camelKey 오브젝트와 관련된 S3Object 인스턴스를 반환하고 0에서 9까지의 바이트를 포함합니다.

  • CreateDownloadLink: 이 작업은 S3 Presigner를 통해 다운로드 링크를 반환합니다.
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
      }
  })
  .to("aws2-s3://mycamelbucket?accessKey=xxx&secretKey=yyy&region=region&operation=createDownloadLink")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

이 작업은 버킷 mycamelbucket 및 region 리전에 camel-key 파일에 대한 다운로드 링크 URL을 반환합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat