Angular對接AWS S3介面上傳檔案樣例
阿新 • • 發佈:2018-11-05
因為沒有找到Angular版的介面,故在此使用了javascript版的。
首先要新增官方依賴
"aws-amplify": "^1.1.3",
"aws-amplify-angular": "^2.0.7",
然後元件中匯入
import AWS from 'aws-sdk/lib/aws';
方法體
doUpload(file: any): void {
const formData = new FormData();
formData.append('file', file);
let accessKeyId: string;
let secretAccessKey: string;
this.keycloakService.loadUserProfile().then(res => {
accessKeyId = res["attributes"]["accesskeyid"][0];
secretAccessKey = res["attributes"]["secretaccesskey"][0];
});
let endPoint: string;
this.inobjBucketUploadService.getBucketDomain(this.bucketName) .subscribe(res => {
endPoint = res.msg;
});
//連線配置在此完成
AWS.config.update({
region: this.region,
credentials: {
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey
},
endpoint: endPoint
});
const params = {
Bucket: this.bucketName,
Key: file.name,
Body: formData
};
let s3 = new AWS.S3();
s3.upload(params, function (err, data) {
console.log(err, data);
});
}