PutS3Object 프로세서

PutS3Object 프로세서

PutS3Object는 FlowFile의 내용을 Amazon S3 버킷의 S3 객체로 기록하는 OpenFlow 프로세서예요.

출처: Snowflake 문서

본문

이 프로세서는 일반 사용 가능(Generally Available) 상태예요. OpenFlow Snowflake 배포는 AWS, Azure, GCP 상용(Commercial) 리전의 모든 계정에서 사용할 수 있고, OpenFlow BYOC 배포는 AWS 상용 리전의 모든 계정에서 사용할 수 있어요. Bundle org.apache.nifi | nifi-aws-nar 설명 FlowFile의 내용을 Amazon S3 버킷의 S3 객체로 기록해요. Tags AWS, Amazon, Archive, Put, S3 입력 요구 사항 필수(REQUIRED) 민감 동적 속성 지원 아니요(false)

속성 (Properties)

속성 설명
AWS Credentials Provider service AWS 자격 증명 공급자를 얻기 위해 사용하는 Controller Service예요.
Bucket 상호작용할 S3 버킷이에요.
Cache Control 연관 객체의 캐싱 지시어를 나타내는 Cache-Control HTTP 헤더를 설정해요. 여러 지시어는 쉼표로 구분돼요.
Canned ACL 객체의 Amazon Canned ACL로, BucketOwnerFullControl, BucketOwnerRead, LogDeliveryWrite, AuthenticatedRead, PublicReadWrite, PublicRead, Private 중 하나예요. 다른 ACL/권한/소유자 속성이 지정되면 무시돼요.
Communications Timeout AWS에 연결을 맺거나 AWS에서 데이터를 받기까지 타임아웃되기 전에 기다리는 시간이에요.
Content Disposition 내용을 인라인으로 표시할지 다운로드할지를 나타내는 Content-Disposition HTTP 헤더를 설정해요. 가능한 값은 'inline' 또는 'attachment'예요. 이 속성을 지정하지 않으면 객체의 content-disposition은 filename으로 설정돼요. 'attachment'를 선택하면 'filename='에 객체 키가 자동으로 붙어 최종 값 'attachment; filename="filename.jpg"'가 만들어져요.
Content Type 연관 객체에 저장된 내용의 타입을 나타내는 Content-Type HTTP 헤더를 설정해요. 이 헤더 값은 표준 MIME 타입이에요. AWS S3 Java 클라이언트는 아직 설정되지 않은 경우 올바른 content type을 결정하려 시도해요. 스트림 업로드 시 사용자가 적절한 content type을 설정할 책임이 있어요. content type이 제공되지 않고 파일 이름으로도 결정할 수 없으면 기본 content type 'application/octet-stream'이 사용돼요.
Custom Signer Class Name 커스텀 signer 클래스의 정규화된 클래스 이름이에요. signer는 com.amazonaws.auth.Signer 인터페이스를 구현해야 해요.
Custom Signer Module Location 커스텀 signer의 JAR 파일과 의존성(있는 경우)을 담고 있는 파일/디렉터리 경로의 쉼표로 구분된 목록이에요.
Encryption Service 요청을 구성하는 데 사용되는 Encryption Service Controller를 지정해요. PutS3Object: 이전 버전 호환을 위해 'Server Side Encryption'이 설정되면 이 값은 무시돼요. FetchS3Object: Server-side Customer Key, Client-side KMS, Client-side Customer Key 암호화의 경우에만 설정하면 돼요.
Endpoint Override URL scheme, host, port, path를 포함해 AWS 기본값 대신 사용할 Endpoint URL이에요. AWS 라이브러리는 AWS 리전을 기준으로 endpoint URL을 선택하지만, 이 속성은 선택된 endpoint URL을 덮어써서 다른 S3 호환 endpoint와 함께 사용할 수 있게 해줘요.
Expiration Time Rule 객체의 만료 시간 규칙이에요.
File Resource Service 전송할 로컬 리소스에 대한 접근을 제공하는 File Resource Service예요.
FullControl User List 객체에 대한 Full Control 권한을 가질 사람을 지정하는 Amazon 사용자 ID 또는 이메일 주소의 쉼표로 구분된 목록이에요.
Multipart Part Size PutS3Multipart Upload API를 사용할 때 사용할 part 크기를 지정해요. flow file은 업로드 과정에서 이 크기의 청크로 나뉘지만 마지막 part는 패딩되지 않으므로 더 작을 수 있어요. 유효 범위는 50MB~5GB예요.
Multipart Threshold PutS3Object API에서 PutS3MultipartUpload API로 전환할 파일 크기 임계값을 지정해요. 이 한도를 넘는 flow file은 상태 유지 멀티파트 과정으로 보내져요. 유효 범위는 50MB~5GB예요.
Multipart Upload AgeOff Interval AWS S3의 기존 멀티파트 업로드를 ageoff 대상으로 평가할 간격을 지정해요. 이 간격을 초과하면 프로세서가 트리거될 때 ageoff 평가를 시작해요.
Multipart Upload Max Age Threshold AWS S3의 기존 멀티파트 업로드의 최대 수명을 지정해요. ageoff 과정에서 이 임계값보다 오래된 업로드는 중단돼요.
Object Key 사용할 S3 객체 키예요. 전통적인 파일 시스템의 파일 이름과 유사해요.
Object Tags Prefix 들어오는 FlowFile 속성에 대해 스캔될 접두사를 지정해요. 일치하는 속성의 이름과 값이 각각 나가는 S3 객체의 태그 이름과 태그 값으로 간주돼요. 예: 들어오는 FlowFile에 tagS3country, tagS3PII 속성이 있다면 지정할 태그 접두사는 'tagS3'가 돼요.
Owner 객체 소유자에 사용할 Amazon ID예요.
Read ACL User List 객체의 Access Control List를 읽을 권한을 가질 사람을 지정하는 Amazon 사용자 ID 또는 이메일 주소의 쉼표로 구분된 목록이에요.
Read Permission User List 객체에 대한 Read Access 권한을 가질 사람을 지정하는 Amazon 사용자 ID 또는 이메일 주소의 쉼표로 구분된 목록이에요.
Region 연결할 AWS 리전이에요.
Remove Tag Prefix 'True'로 설정하면 'Object Tags Prefix'로 제공된 값이 속성에서 제거된 뒤 태그 이름으로 간주돼요. 예: 들어오는 FlowFile에 tagS3country, tagS3PII 속성이 있고 접두사가 'tagS3'로 설정되면 해당 태그 값은 'country'와 'PII'가 돼요.
Resource Transfer Source 전송할 내용의 소스예요.
SSL Context Service 제공되면 연결을 만드는 데 사용되는 선택적 SSL Context Service를 지정해요.
Server Side Encryption 서버 측 암호화에 사용할 알고리즘을 지정해요.
Signer Override AWS S3 라이브러리는 기본적으로 Signature Version 4를 사용하지만, 이 속성은 이전 S3 호환 서비스를 지원하도록 Version 2 signer를 지정하거나 자체 커스텀 signer 구현을 연결할 수 있게 해줘요.
Storage Class 객체의 스토리지 클래스예요.
Temporary Directory Multipart State 멀티파트 업로드의 경우 프로세서가 업로드 ID와 업로드된 part를 추적하는 상태를 로컬로 저장할 디렉터리예요. 업로드 완료에는 둘 다 제공되어야 해요.
Use Chunked Encoding 업로드 요청에 chunked encoding을 활성화/비활성화해요. endpoint가 chunked 업로드를 지원하지 않을 때만 false로 설정하세요.
Use Path Style Access 이 속성을 true로 설정하면 path-style 접근을 강제할 수 있어요. endpoint가 virtual-hosted-style 요청이 아닌 path-style 요청만 지원할 때 true로 설정하세요.
Write ACL User List 객체의 Access Control List를 변경할 권한을 가질 사람을 지정하는 Amazon 사용자 ID 또는 이메일 주소의 쉼표로 구분된 목록이에요.
Write Permission User List 객체에 대한 Write Access 권한을 가질 사람을 지정하는 Amazon 사용자 ID 또는 이메일 주소의 쉼표로 구분된 목록이에요.
proxy-configuration-service 네트워크 요청을 프록시할 Proxy Configuration Controller Service를 지정해요.

관계 (Relationships)

이름 설명
failure 프로세서가 주어진 FlowFile을 처리하지 못하면 이 관계로 라우팅돼요.
success 성공적으로 처리된 FlowFile이 이 관계로 라우팅돼요.

기록되는 속성 (Writes attributes)

속성 설명
s3.url S3 객체에 접근하는 데 사용할 수 있는 URL이에요.
s3.bucket 객체가 S3에 저장된 S3 버킷이에요.
s3.key 객체가 S3에 저장된 S3 키예요.
s3.contenttype S3에 저장된 S3 객체의 S3 content type이에요.
s3.version S3에 저장된 S3 객체의 버전이에요.
s3.exception 프로세서 실행 중 던져진 예외의 클래스 이름이에요.
s3.additionalDetails 실패한 연산에서 S3가 제공한 추가 세부 정보예요.
s3.statusCode 실패한 연산의 HTTP 오류 코드(가능한 경우)예요.
s3.errorCode 실패한 연산의 S3 모니커예요.
s3.errorMessage 실패한 연산의 S3 예외 메시지예요.
s3.etag S3 객체의 ETag예요.
s3.contentdisposition S3에 저장된 S3 객체의 content disposition이에요.
s3.cachecontrol S3 객체의 cache-control 헤더예요.
s3.uploadId 객체를 S3에 업로드하는 데 사용된 uploadId예요.
s3.expiration 설정된 경우 S3 객체의 만료 날짜를 사람이 읽을 수 있는 형태로 나타낸 값이에요.
s3.sseAlgorithm 객체의 서버 측 암호화 알고리즘이에요.
s3.usermetadata 설정된 경우 S3 객체의 사용자 메타데이터를 사람이 읽을 수 있는 형태로 나타낸 값이에요.
s3.encryptionStrategy 설정된 경우 암호화 전략의 이름이에요.

더 알아보기 (Learn more)