0
S3에 파일을 저장하고 모든 항목에 자체 경로 (예 : base/item._id/filename
)를 저장하려고합니다. 어떻게이 일을 완수합니까?KeystoneJsS : 모든 항목에 대한 S3 파일 형식 경로
파일 이름이 자동으로 생성되어 옵션이 작동하지 않는 것 같습니다.
S3에 파일을 저장하고 모든 항목에 자체 경로 (예 : base/item._id/filename
)를 저장하려고합니다. 어떻게이 일을 완수합니까?KeystoneJsS : 모든 항목에 대한 S3 파일 형식 경로
파일 이름이 자동으로 생성되어 옵션이 작동하지 않는 것 같습니다.
키스톤의 Types.S3File
유형은 자신의 파일 이름을 결정하기 위해 사용자 정의 기능으로 설정할 수있는 filename
옵션이 있습니다. 그 값이 존재하는 경우 item.name
로 설정할 수 있도록 Documentation Link
{
type: Types.S3File,
filename: function(item, filename) {
// prefix file name with object id
return item._id + '-' + filename;
}
}
item
는 현재 항목의 모든 속성이 있습니다.
4.0.0-beta 5에서 작동하지 않음 – mikeso
Keystone이 Keystone 4와 함께 중앙 집중식 'Types.File'유형으로 이동했습니다. [Amazon S3 스토리지 어댑터] (https://github.com/)를 사용해야합니다. keystonejs/keystone-storage-adapter-s3)을 사용하십시오. 또한 'generateFilename' 함수가 Keystone 4에서 업데이트 할 항목에 대한 참조를받지 못하는 것처럼 보입니다. [추가 읽기] (https://github.com/keystonejs/keystone/wiki/File-Fields-Upgrade-Guide) –
예, s3 adpter를 사용 중이며 작동 중입니다. 하지만 다른 항목에 다른 하위 디렉토리를 갖고 싶습니다. 그것을하는 방법? s3 : { 경로 : '업로드', 헤더 : { 'x-amz-acl': '공개 읽기', }, }이 업로드/업로드, 내가 원하는/업로드/item_id/xxx – mikeso