설명
Amazon S3로 파일을 업로드하는 예제이다. S3로 파일을 업로드하려면, '리전/버킷/엑세스키/비밀엑세스키' 정보를 미리 알고 있어야 한다. 그러나 '액세스키/비밀엑세스키'와 같은 정보는 외부에 노출이 되면 안되는 정보이므로 공개된 곳에서는 사용하는 것은 위험하다. AWS의 자격증명 정보를 노출하지 않고 업로드하기 위해서는 백엔드에서 사전에 서명된 주소를 생성하고 그 주소를 사용하여 파일을 업로드하는 방법이 있다. 서명된 주소는 일정 시간 동안만 유효하며, 업로드를 위한 권한이 내포되어 있다. 다음은 해당 정보를 설정하는 코드를 보여준다.
// AWSS3 방식으로 설정한다.
dx.setUploadMode("AWSS3");
// 설정 객체의 type 속성을 "SECRET"으로 설정하거나 생략한다.
dx.setAWSS3UploadConfig({
//type: "SECRET",
initURL: dx5.canonicalize("../service/awss3-upload-helper.ashx?step=0"),
signedURL: dx5.canonicalize("../service/awss3-upload-helper.ashx?step=1"),
completeURL: dx5.canonicalize("../service/awss3-upload-helper.ashx?step=2")
});
세 가지 백엔드 주소는 파일 업로드를 하는 각 단계마다 필요로 하는 서명된 주소를 생성하여 반환하는 역할을 담당한다. 백엔드에서 서명된 주소를 반환하기 위해서는 AWS에서 제공하는 SDK를 사용해야 하는데, ASP.NET인 경우 NuGet을 통해서 설치를 할 수 있다. 샘플 프로젝트에서는 packages 폴더에 필요한 AWS SDK 바이너리 파일을 넣어두었다.
AWS SDK를 사용하여 서명된 주소를 생성하는 세부 내용은 awss3-upload-helper.ashx 제너릭 핸들러를 참고하도록 한다.
예제
|
|