# พัฒนาโปรแกรมเพื่ออัปโหลดไฟล์จากเซิร์ฟเวอร์ ด้วย NodeJS
# ติดตั้งไลบรารีเพื่อจัดการ
npm install --save aws-sdk
1
# เริ่มสร้าง Client Instance เพื่อใช้ทำงาน
TIP
การเชื่อมต่อจะต้องใช้ Access key ซึ่งผู้ที่มีสิทธิ์จัดการ space จะสามารถสร้าง Access key ใหม่ได้
# ตัวอย่างการสร้าง Signed URL ด้วย SDK
const AWS = require('aws-sdk');
// Configure AWS SDK
AWS.config.update({
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_KEY',
endpoint: 'https://st-th-1.byteark.com',
s3ForcePathStyle: true,
signatureVersion: 'v4'
});
const s3 = new AWS.S3();
function generateSignedUrl(bucketName, fileName) {
const params = {
Bucket: bucketName,
Key: fileName,
Expires: 60 // Expires in 60 seconds
};
return s3.getSignedUrl('putObject', params);
}
async function uploadFileToS3(signedUrl, file) {
const response = await fetch(signedUrl, {
method: 'PUT',
body: file
});
if (response.ok) {
console.log('File uploaded successfully.');
} else {
console.error('Upload failed:', response.statusText);
}
}
const url=generateSignedUrl('YOUR_BUCKET_NAME', 'filename.txt')
console.log(url)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
ผู้ใช้จะได้รับ URL ที่มี X-Amz-Signature และพารามิเตอร์ต่างๆ ดังนี้ โดยสามารถใช้ URL นี้เพื่อการอัพโหลดไฟล์ขึ้นสู่ระบบได้
https://st-th-1.byteark.com/tvarchive/filename.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=LUFH7YU31W8LJ3V24DQ1%2F20231204%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231204T152638Z&X-Amz-Expires=60&X-Amz-Signature=2dda74628d426482b4030b61869bd92bf3816fa03f2d7bf13df03eeade96b658&X-Amz-SignedHeaders=host
1