CloudFront 객체 구조
cloudfront 객체는 S3에 저장된 파일을 위한 CloudFront 전달을 구성합니다. fileStrategy 또는 fileStrategies 항목 중 하나라도 "cloudfront"를 사용하는 경우 이 객체가 필요합니다.
예시
fileStrategies:
avatar: 'cloudfront'
image: 'cloudfront'
document: 's3'
cloudfront:
domain: 'https://cdn.example.com'
distributionId: 'E1234ABCD'
invalidateOnDelete: false
imageSigning: 'cookies'
cookieDomain: '.example.com'
cookieExpiry: 1800
urlExpiry: 3600
storageRegion: 'us-east-2'
includeRegionInPath: false
requireSignedAccess: true필드
| Key | Type | Description | Example |
|---|---|---|---|
| domain | String | CloudFront 배포 도메인 또는 CNAME. 필수 항목입니다. | domain: "https://cdn.example.com" |
| distributionId | String | CloudFront 배포 ID. `invalidateOnDelete`가 true일 때 필수입니다. | distributionId: "E1234ABCD" |
| invalidateOnDelete | Boolean | S3 객체를 삭제한 후 CloudFront 무효화를 생성합니다. 기본값: false. | invalidateOnDelete: false |
| imageSigning | String | 인라인 미디어 서명 모드. 옵션: `"none"`, `"cookies"`, `"url"`. `"url"`은 예약되어 있으며 이미지에 대해서는 구현되지 않았습니다. | imageSigning: "cookies" |
| urlExpiry | Number | 초 단위의 서명된 CloudFront 다운로드 URL 수명입니다. 기본값: 3600. | urlExpiry: 3600 |
| cookieExpiry | Number | 서명된 쿠키의 유지 시간(초 단위). 기본값: 1800. 최댓값: 604800. | cookieExpiry: 1800 |
| cookieDomain | String | 서명된 쿠키를 위한 공유 상위 도메인입니다. `imageSigning`이 `"cookies"`일 때 필요합니다. 반드시 점(.)으로 시작해야 합니다. | cookieDomain: ".example.com" |
| storageRegion | String | `includeRegionInPath`가 true일 때 생성된 객체 키에 사용되는 선택적 리전 레이블입니다. | storageRegion: "us-east-2" |
| includeRegionInPath | Boolean | 새로 생성된 객체 키에 스토리지 리전을 포함합니다. 기본값: false. | includeRegionInPath: false |
| requireSignedAccess | Boolean | 시작 시 성공적으로 초기화하려면 서명된 쿠키(signed-cookie) CloudFront 액세스가 필요합니다. 기본값: false. | requireSignedAccess: true |
유효성 검사 규칙
invalidateOnDelete가true일 때distributionId는 필수입니다.imageSigning이"cookies"로 설정된 경우cookieDomain이 필요합니다.cookieDomain은 반드시 점(.)으로 시작해야 합니다. 예:.example.com.requireSignedAccess: true는imageSigning: "cookies"를 필요로 합니다.
관련 환경 변수
| Key | Type | Description | Example |
|---|---|---|---|
| CLOUDFRONT_KEY_PAIR_ID | String | CloudFront 공개 키 쌍 ID. 서명된 쿠키 및 서명된 다운로드에 필요합니다. | # CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC |
| CLOUDFRONT_PRIVATE_KEY | String | CloudFront 개인 키 PEM. 서명된 쿠키 및 서명된 다운로드에 필요합니다. | # CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" |
배포 지침은 CloudFront with S3를 참조하세요.
이 가이드는 어떤가요?