설명
Amazon S3로 파일을 업로드하는 예제이다. S3로 파일을 업로드하려면, '리전/버킷/엑세스키/비밀엑세스키' 정보를 미리 알고 있어야 한다. 다음은 해당 정보를 설정하는 코드를 보여준다.
// AWSS3 방식으로 설정한다.
dx.setUploadMode("AWSS3");
// 설정 객체의 type 속성을 "NON-SECRET"으로 설정한 후, 나머지 값들을 설정한다.
dx.setAWSS3UploadConfig({
type: "NON-SECRET",
accessKeyId: "ABCD...1234",
secretAccessKey: "ABCD...1234",
region: "",
bucket: "abc-bucket"
});
예제는 파일 이름을 키로 사용하고 있다. 파일 이름을 수동으로 설정하고 싶다면 설정 객체의 makeKey 속성에 키를 생성하는 함수를 설정하면 된다.
dx.setAWSS3UploadConfig({
...
// 키: 컴포넌트이름/파일이름
makeKey: item => `${item.controlId}/${item.name}`
});
S3 서버에서도 업로드를 위한 설정을 해주어야 한다. 서로 다른 출처끼리 통신을 하기 위해서 CORS 설정이 필요하다. DEXTUploadX5는 멀티파트 업로드를 방식을 사용하여 S3로 파일을 업로드하기 때문에 PUT 요청 메소드 및 ETag 응답헤더를 반드시 허용해야 한다.
# S3 CORS configuration
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["HEAD", "GET", "PUT", "POST", "DELETE"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"]
}
]
예제
|
|