اتصال به فضای ابری با زبان برنامه‌نویسی Javascript

شروع به کار پارتیشن S3 RGW #

اطلاعات دسترسی پارتیشن S3 #

پس از ساختن پارتیشن S3 و دریافت ایمیل اطلاع رسانی وارد داشبورد پشتیبان شده و در صفحه خانه داشبورد در وسط صفحه به سربرگ پارتیشن S3 بروید و روی منوی سه نقطه سمت چپ کارت پارتیشن کلیک کنید تا وارد بخش تنظیمات پارتیشن شوید. در سربرگ اطلاع دسترسی و سربرگ آدرس ها اطلاع دسترسی پارتیشن s3 خود را مشاهده خواهید کرد.

این مشخصات برای اتصال به آبجکت استوریج در اختیار شما قرار خواهد داشت.

کلید دسترسی (Access Key ID)

کلید خصوصی (Secret Access Key)

اندپوینت S3 (یک نام دامنه تایید شده برای فضای ابری شما یا FQDM)

نام  Bucket (که پس از ساخت پارتیشن به هر تعداد که نیازداشته باشید در پارتیشن ایجاد می‌کنید)

کلید دسترسی و کلید خصوصی مانند نام کاربری و رمز عبور پارتیشن S3 هستند و باید به خوبی از آنها محافظت کنید و در اختیار دیگران قرار ندهید.

مستندات AWS SDK for JavaScript v3 #

برای دسترسی به مستندات کامل و جزییات بیشتر  به مستندات و گیت‌هاب و npm این کتابخانه مراجعه کنید.

پیش نیاز ها و نصب #

کتابخانه aws-sdk/client-s3 هستید. می‌توانید با استفاده از ابزارهای مدیریت پکیج npm و یا yarn بصورت زیر نصب کنید:

npm install @aws-sdk/client-s3
yarn add @aws-sdk/client-s3

نمونه کد اتصال به فضای ابری با زبان برنامه نویسی JavaScript #

const { S3Client } = require('@aws-sdk/client-s3');

const s3 = new S3Client({
    region: 'default',
    endpoint: 'endpoint_url',
    credentials: {
        accessKeyId: 'access_key',
        secretAccessKey: 'secret_key',
    },
});

نمونه کد ساخت باکت عمومی (public) و باکت خصوصی (private) #

const { S3Client, CreateBucketCommand } = require('@aws-sdk/client-s3');

// Create an S3 client service object
const s3 = new S3Client({
    region: 'default',
    endpoint: 'endpoint_url',
    credentials: {
        accessKeyId: 'access_key',
        secretAccessKey: 'secret_key',
    },
});

const run = async () => {
    try {
        const data = await s3.send(
            new CreateBucketCommand({
                Bucket: 'sample-bucket',
                ACL: 'public-read', // 'private' | 'public-read'
            })
        );
    } catch (err) {
        console.log('Error', err);
    }
};

run();

مستندات CreateBucketCommand را اینجا مطالعه کنید.

آپلود فایل در باکت #

const { S3Client, PutObjectCommand } = require('@aws-sdk/client-s3');
const fs = require('fs');
const path = require('path');

// Create an S3 client service object
const s3 = new S3Client({
    region: 'default',
    endpoint: 'endpoint_url',
    credentials: {
        accessKeyId: 'access_key',
        secretAccessKey: 'secret_key',
    },
});

const uploadParams = {
    Bucket: 'sample_bucket', // bucket name
    Key: 'object-name', // the name of the selected file
    ACL: 'public-read', // 'private' | 'public-read'
    Body: 'BODY',
};

// BODY (the contents of the uploaded file - leave blank/remove to retain contents of original file.)
const file = 'file.png'; //FILE_NAME (the name of the file to upload (if you don't specify KEY))

// call S3 to retrieve upload file to specified bucket
const run = async () => {
    // Configure the file stream and obtain the upload parameters
    const fileStream = fs.createReadStream(file);
    fileStream.on('error', function (err) {
        console.log('File Error', err);
    });
    uploadParams.Key = path.basename(file);
    // call S3 to upload file to specified bucket
    uploadParams.Body = fileStream;

    try {
        const data = await s3.send(new PutObjectCommand(uploadParams));
        console.log('Success', data);
    } catch (err) {
        console.log('Error', err);
    }
};

run();

مستندات PutObjectCommand را اینجا مطالعه کنید. برای تعیین سطح دسترسی به باکت (ACL) میتوانید مقدادیر private و public-read را داشته باشید.

برای دسترسی به مستندات کامل و جزییات بیشتر  به مستندات و گیت‌هاب و npm این کتابخانه مراجعه کنید.