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 | 설정된 경우 암호화 전략의 이름이에요. |