Cara upload data ke Amazon S3 Menggunakan Node JavaScript
Apa yang bisa lebih sederhana dari upload file ke server dan menyimpannya ke hard drive, kan? Terbuka aliran membaca, membaca byte, terbuka tulis aliran, menulis byte, dilakukan. Sekarang mari kita menjelajahi pertanyaan yang sama tetapi dari ketersediaan tinggi perspektif layanan beban tinggi. Anda merancang Instagram baru, di mana Anda akan menyimpan foto-foto?
Minimal Anda harus memastikan bahwa kegagalan untuk satu simpul di pusat data tidak akan mengganggu layanan Anda (Anda tidak bisa membiarkan kehilangan foto-foto kucing berharga yang pengguna Anda upload). Itu berarti bahwa Anda harus melakukan replikasi foto Anda ke beberapa lokasi, berpikir tentang pola pemulihan bencana, pemantauan, mengingatkan ... Cara berpikir mungkin latihan yang bagus di dev-ops dan perencanaan datacenter, tetapi cara yang lebih dalam yang Anda harapkan ketika Anda merencanakan Anda Instagram NextGen.
Untungnya, orang-orang dari Amazon berpikir bahwa melalui untuk pusat data mereka sendiri dan dengan bantuan layanan S3 mereka Anda dapat yakin bahwa foto Anda aman, direplikasi dan dilindungi dari kegagalan HDD. S3 singkatan Storage Scalable Simple - salah satu layanan AWS Amazon yang memecahkan masalah kecil ini: menyimpan file.
Dalam artikel ini saya akan menunjukkan cara untuk terhubung ke S3 dan meng-upload file dari aplikasi Node.js Anda. Perhatikan: dalam rangka mengikuti langkah-langkah Anda akan perlu memiliki akun AWS dan menciptakan S3 ember. Ember bekerja seperti folder: hanya unit organisasi untuk file. Setelah Anda membuat ember, mempersiapkan ruang kerja Node.js Anda:
npm install --save aws-sdk
aws-sdk adalah Plugin API Amazon AWS untuk Node.js. Modul ini berisi kelas pembantu untuk bekerja dengan sebagian besar layanan AWS. S3 juga didukung oleh aws-sdk. Sekarang mari kita membuat konfigurasi untuk API. Buat file bernama aws.config.json dan menempatkan baris berikut inii:
{
"accessKeyId": "AAAAAAA",
"secretAccessKey": "uuudfufduufuf",
"region": "us-east-1"
}
Pastikan bahwa Anda menempatkan accesskey dan rahasia bukan yang ditampilkan dalam artikel, jika tidak, anda tidak akan dapat mengotentikasi!
Sekarang kita dapat membuat S3 objek dan meng-upload file:
const fs = require('fs');
const AWS = require('aws-sdk');
AWS.config.loadFromPath('./aws.config.json');
const s3 = new AWS.S3();
const params = {
Bucket: 'your-bucket-name',
Key: 'uploaded-sample.jpg',
ACL: 'public-read',
Body: fs.createReadStream('sample.jpg'),
ContentType: 'image/jpeg'
};
s3.upload(params, function(err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
Kode ini akan meng-upload sebuah file yang bernama 'sample.jpg' ke Amazon S3 Bucket dan membuatnya dapat dibaca oleh semua orang (ACL - public-baca). File akan disimpan dengan nama upload-sample.jpg (Key - upload-sample.jpg). Akhirnya, kami menetapkan ContentType untuk file ini menjadi 'image / jpeg'. Hal ini tidak benar-benar diperlukan tetapi merupakan praktik yang baik untuk mengatur jenis MIME yang tepat untuk file Anda.
Sekarang Anda dapat memeriksa ember. File harus di-upload dan siap untuk pemirsa Anda.
Mengikuti pola yang sama Anda benar-benar dapat menghapus "upload" folder dari server Anda, tapi bukannya meng-upload file yang ada untuk S3 Anda dapat pipa aliran file dari objek permintaan langsung ke S3.
Comments
Post a Comment
-Berkomentarlah yang baik dan rapi.
-Menggunakan link aktif akan dihapus.