Amazon S3 파일 업로드

Home > Amazon S3 > 예제 01

설명

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"]
    }
]

예제

업로드 결과