Pelajari cara menyiapkan penyimpanan file S3 menggunakan panduan langkah demi langkah ini.

Jika Anda membuat aplikasi web Django, penting untuk menangani aset statis dan file media yang diunggah pengguna secara efisien.

Di lingkungan pengembangan, Django mengelola berkas ini. Namun, dalam produksi, Anda ingin menjelajahi opsi lebih lanjut. Basis pengguna Anda mungkin tumbuh secara signifikan, dan Anda mungkin berurusan dengan file yang jauh lebih besar, seperti audio dan video.

Bucket Layanan Penyimpanan Sederhana (S3) Amazon Web Services (AWS) adalah salah satu alternatif untuk menghosting file statis dan media. Dengan mengintegrasikan S3 dengan Django, Anda dapat melepaskan beban pengelolaan file dari server Anda, mengurangi beban, dan memastikan pengiriman aset yang lebih cepat dan andal.

Langkah 1: Buat Akun AWS

Jika Anda tidak memiliki akun AWS, navigasikan ke situs AWS, dan buat akun baru.

Akun AWS baru memiliki akses gratis ke penyimpanan standar S3 sebesar 5 GB setiap bulan selama satu tahun.

instagram viewer

Langkah 2: Buat Bucket S3 untuk Proyek Anda

  1. Setelah membuat akun AWS Anda, masuk dan cari S3 di bilah pencarian di bagian atas, lalu pilih opsi pertama.
  2. Setelah memilih opsi pertama, Anda akan melihat halaman baru. Klik Buat ember tombol:
  3. Selanjutnya, berikan nama untuk bucket S3 Anda. Anda dapat membiarkan sebagian besar konfigurasi sebagai default.
  4. Gulir ke bawah ke Cekal setelan Akses Publik untuk bucket ini bagian, hapus centang Blokir semua akses publik pengaturan, dan akui peringatan yang muncul.
  5. Setelah selesai, klik Buat ember tombol. Ini akan mengarahkan Anda ke halaman yang menampilkan daftar bucket S3 yang telah Anda buat.

Langkah 3: Buat Pengguna IAM di AWS

AWS menyediakan layanan yang disebut IAM (Identity and Access Management). Ini memungkinkan Anda membuat akun terpisah untuk orang atau aplikasi tertentu yang perlu berinteraksi dengan layanan AWS.

Anda dapat menetapkan berbagai tingkat izin kepada pengguna IAM, yang mewakili individu atau aplikasi yang berinteraksi dengan layanan AWS yang telah Anda buat. Dengan pengguna IAM, Anda dapat memastikan bahwa setiap pengguna hanya memiliki akses ke sumber daya yang mereka butuhkan dan tidak lebih.

Demi keamanan, Anda harus membuat pengguna IAM untuk proyek Django Anda untuk berinteraksi dengan bucket S3 Anda. Ikuti langkah-langkah ini untuk membuat pengguna IAM di AWS:

  1. Di bilah pencarian, ketik SAYA dan pilih opsi pertama. Halaman baru akan muncul.
  2. Di sisi kiri halaman IAM, pilih Pengguna, lalu lanjutkan dengan mengklik Tambahkan pengguna tombol. Ini akan membuka halaman lain untuk mengisi beberapa informasi.
  3. Mulailah dengan memasukkan nama untuk pengguna IAM dan mengklik Berikutnya tombol di bagian bawah: Di halaman berikutnya, Anda harus memilih tingkat izin untuk pengguna IAM. Ikuti langkah ini:
    1. Pertama, pilih Lampirkan kebijakan secara langsung pilihan dari Opsi izin bagian.
    2. Selanjutnya, tentukan kebijakan izin untuk pengguna IAM Anda. Ini akan menentukan apa yang dapat dan tidak dapat dilakukan oleh pengguna IAM. Karena Anda ingin aplikasi Django mengunduh dan mengunggah file, Anda harus memberinya akses penuh ke keranjang S3.
    3. Dalam Kebijakan izin bagian, Anda harus mencari S3FullAccess dan pilih opsi. Setelah selesai, klik Berikutnya tombol.
  4. Selanjutnya, tinjau kebijakan untuk pengguna IAM dan klik Buat pengguna tombol untuk membuat pengguna IAM Anda.

Langkah 4: Buat Kunci Akses untuk Pengguna IAM Anda

Di AWS, kunci akses mengacu pada kredensial yang dapat Anda gunakan untuk mengautentikasi dan mengakses sumber daya AWS dengan aman secara terprogram. Proyek Django Anda harus menyediakan kredensial ini untuk mengakses bucket S3 Anda.

Langkah-langkah berikut akan membantu Anda membuat kunci akses untuk proyek Anda.

  1. Setelah membuat pengguna IAM, Anda akan mendapatkan pesan peringatan yang meminta Anda untuk melihat pengguna tersebut. Atau, Anda dapat melihat pengguna dengan mengklik Nama belakang.
  2. Selanjutnya, pilih Kredensial keamanan tab, gulir ke bawah untuk menemukan Kunci akses bagian, dan pilih Buat kunci akses.
  3. Anda harus memilih kasus penggunaan untuk akses Anda, sehingga AWS dapat merekomendasikan opsi alternatif jika sesuai. Itu tidak memengaruhi kunci akses Anda. Jangan ragu untuk memilih opsi seperti Layanan pihak ketiga atau Kode lokal dan akui peringatan yang muncul. Setelah selesai, klik Berikutnya tombol.
  4. Di halaman berikutnya, masukkan tag deskripsi untuk kunci akses Anda dan klik Buat kunci akses tombol.
  5. Setelah membuat kunci akses, Anda dapat menyalin kredensial atau mendownloadnya sebagai file CSV. Either way, pastikan untuk menjaga data ini aman dan aman.

Langkah 5: Konfigurasikan Proyek Django Anda untuk Bucket S3

Untuk menggunakan bucket S3 Anda dengan proyek Django, instal paket ini:

  • django-storages: Paket ini akan membantu Anda menentukan backend penyimpanan untuk file Anda.
  • boto3: Paket ini adalah AWS Perangkat Pengembangan Perangkat Lunak (SDK) untuk membantu proyek Python Anda berinteraksi dengan AWS.

Anda dapat menginstal paket-paket ini ke dalam Lingkungan virtual Python dengan manajer paket Pip Python dengan mengetikkan perintah ini di terminal Anda:

pip install django-storages boto3

Setelah Anda berhasil menginstal paket-paket ini, buka file Anda pengaturan.py file dan tambahkan boto3 ke aplikasi yang diinstal.

Hal terakhir yang harus dilakukan adalah mengonfigurasi proyek Django Anda untuk menggunakan bucket AWS S3. Berikut konfigurasi umum yang akan digunakan:

AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID '
AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY'
AWS_STORAGE_BUCKET_NAME = 'AWS_STORAGE_BUCKET_NAME'
AWS_S3_SIGNATURE_NAME = 's3v4',
AWS_S3_REGION_NAME = 'AWS_S3_REGION_NAME'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
AWS_S3_VERITY = True
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

Rekatkan konfigurasi di atas di Anda pengaturan.py file dan ganti nilai yang sesuai. Ganti Anda AWS_ACCESS_KEY_ID Dan AWS_SECRET_ACCESS_KEY dengan kunci akses dan kunci akses rahasia yang Anda salin atau unduh sebelumnya. Anda juga harus mengubah AWS_STORAGE_BUCKET_NAME Dan AWS_S3_REGION_NAME ke nama bucket dan wilayah S3 Anda.

Anda bisa mendapatkan nama wilayah dengan menavigasi ke bucket S3 Anda dan menyalin nilai terakhir dari wilayah AWS kolom.

Langkah 6: Uji Konfigurasi AWS Anda

Setelah langkah-langkah di atas selesai, Anda harus siap menguji aplikasi Anda dengan mengunggah file. Contoh kode berikut akan mengunggah file langsung dari panel admin, tetapi Anda bebas mengunggah milik Anda dari tempat lain.

Untuk konteksnya, Anda dapat memiliki model yang terlihat seperti ini:

classPost(models.Model):
title = models.CharField(max_length=225, blank=False, null=False)
content = models.TextField('Post Body', blank=False, null=False)
author = models.CharField(max_length=225, blank=False, null=False)
date_published = models.DateTimeField(auto_now=True)
image = models.ImageField(upload_to='posts')

def__str__(self):
return self.title

Pastikan Anda melakukan operasi yang diperlukan seperti migrasi, menambahkannya ke panel admin, membuat tampilan, dan hal lain yang diperlukan untuk proyek Anda. Pastikan Anda berlatih Prinsip MVT Django.

Setelah selesai, navigasikan ke panel admin Anda atau formulir apa pun yang telah Anda buat untuk mengunggah file, dan unggah file gambar.

Arahkan ke situs utama Anda dan konfirmasikan bahwa gambar tersebut ada di sana. Jika ya, klik kanan pada gambar dan pilih Buka gambar di tab baru pilihan. Di tab baru yang berisi gambar, Anda akan melihat bahwa bilah alamat mereferensikan bucket S3 yang Anda buat sebelumnya:

Cara lain untuk mengonfirmasi bahwa konfigurasi Anda berfungsi adalah dengan menavigasi ke bucket Anda di konsol AWS. Anda akan menemukan gambar Anda di sana:

Langkah 7: Kumpulkan File Statis ke Bucket S3 Anda

Sejauh ini, Anda dapat mengunggah file media ke bucket S3 Anda; sekarang, Anda perlu mengunggah file statis Anda.

Untuk melakukan itu, tambahkan konfigurasi ini ke file Anda pengaturan.py mengajukan:

STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_LOCATION = 'static'

Setelah itu, buka milik Anda Antarmuka Baris Perintah (CLI) dan jalankan perintah ini:

python manage.py collectstatic --noinput

Untuk mengonfirmasi bahwa semuanya berfungsi, buka bucket S3 Anda di konsol AWS. Anda akan melihat folder bernama statis.

Gunakan AWS S3 Bucket untuk Lebih Banyak Lagi

Kemungkinan bucket AWS S3 sangat besar! Anda harus membiasakan diri dengannya dan mempelajari cara menggunakan S3 untuk tujuan lain, seperti hosting aplikasi web statis.

Mengetahui cara menggunakan bucket S3 dengan benar akan menghemat banyak waktu dan membantu Anda membangun produk atau solusi yang lebih baik. Namun Anda juga harus menyadari bahwa S3 mungkin tidak cocok untuk setiap kasus, jadi pertimbangkan kebutuhan proyek Anda sebelum menggunakannya.