اتصال NodeJs به فایل S3
در این بخش می خواهیم آموزش نحوه اتصال NodeJs
به فایل S3
را در هاست نود جی اس NodeJS به شما آموزش دهیم.
برای متصل کردن NodeJs
به سرویس فایل S3
باید یکسری تغییرات در پروژه خود اعمال کنید که این تغییرات در این صفحه قدم به قدم خدمت شما شرح داده خواهد شد.
نصب AWS SDK
برای استفاده از سرویس فایل S3
ابتدا با استفاده از دستور زیر کتابخانه aws-sdk را در پروژه خود نصب نمایید.
npm i aws-sdk
تنظیم کلیدها
حالا که کتابخانه مربوط نصب شد، باید مشخصات سرویس فایل S3
خود را با استفاده از env
ها به Nodejs
معرفی کنید. که برای اینکار می توانید از فایل قسمت متغیر های محیطی چابکان استفاده کنید.
# name : value
ENDPOINT : <Bucket Endpoint>
BUCKET_NAME : <Bucket Name>
ACCESS_KEY : <Access Key>
SECRET_KEY : <Secret Key>
نحوهی استفاده
در این بخش نمونه کد های نحوه استفاده از فضای ذخیره سازی در Nodejs
توضیح داده شده است.
لیست باکت ها
برای دریافت لیست باکت ها ایجاد شده میتوانید مانند نمونه کد زیر اقدام نمایید:
const AWS = require('aws-sdk');
const config = {
endpoint: process.env(ENDPOINT),
accessKeyId: process.env(ACCESS_KEY),
secretAccessKey: process.env(SECRET_KEY),
region: "default",
}
const client = new AWS.S3(config);
client.listBuckets(
(err, data) => {
if (err) console.error(err, err.stack);
else console.log(data);
}
);
آپلود فایل در باکت
برای آپلود فایل در باکت ایجاد شده میتوانید مانند نمونه کد زیر اقدام نمایید:
const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3");
require("dotenv").config();
const client = new S3Client({
region: "default",
endpoint: process.env.ENDPOINT,
credentials: {
accessKeyId: process.env.ACCESS_KEY,
secretAccessKey: process.env.SECRET_KEY
},
});
const params = {
Body: "<Binary String>",
Bucket: process.env.BUCKET_NAME,
Key: "objectkey",
};
try {
await client.send(new PutObjectCommand(params));
} catch (error) {
console.log(error);
}
client.send(new PutObjectCommand(params), (error, data) => {
if (error) {
console.log(error);
} else {
console.log(data);
}