Bu adım adım kılavuzu kullanarak S3 dosya depolamayı nasıl kuracağınızı öğrenin.
Bir Django web uygulaması oluşturuyorsanız, statik varlıkları ve kullanıcı tarafından yüklenen medya dosyalarını verimli bir şekilde işlemek çok önemlidir.
Bir geliştirme ortamında, Django bu dosyaları yönetir. Ancak üretimde daha fazla seçeneği keşfetmek isteyeceksiniz. Kullanıcı tabanınız önemli ölçüde büyüyebilir ve ses ve video gibi çok daha büyük dosyalarla uğraşıyor olabilirsiniz.
Amazon Web Services (AWS) Simple Storage Service (S3) Bucket, statik ve medya dosyalarını barındırmak için bir alternatiftir. S3'ü Django ile entegre ederek, dosya yönetimi yükünü sunucunuzdan alabilir, yükü azaltabilir ve varlıkların daha hızlı, daha güvenilir teslimini sağlayabilirsiniz.
1. Adım: Bir AWS Hesabı Oluşturun
Bir AWS hesabınız yoksa şuraya gidin: AWS sitesive yeni bir hesap oluşturun.
Yeni AWS hesapları, bir yıl boyunca her ay 5 GB S3 standart depolamaya ücretsiz erişime sahiptir.
2. Adım: Projeniz için bir S3 Kovası Oluşturun
- AWS hesabınızı oluşturduktan sonra oturum açın ve S3 üstteki arama çubuğunda, ardından ilk seçeneği seçin.
- İlk seçeneği seçtikten sonra yeni bir sayfa göreceksiniz. Tıkla Grup oluştur düğme:
- Ardından, S3 grubunuz için bir ad girin. Yapılandırmanın çoğunu varsayılan olarak bırakabilirsiniz.
- aşağı kaydır Bu grup için Genel Erişimi engelle ayarları bölümündeki işareti kaldırın Tüm genel erişimi engelle ayarlayın ve görüntülenen uyarıyı onaylayın.
- Bittiğinde, tıklayın Grup oluştur düğme. Sizi, oluşturduğunuz S3 gruplarının listesini gösteren bir sayfaya yönlendirecektir.
3. Adım: AWS'de bir IAM Kullanıcısı oluşturun
AWS, IAM (Kimlik ve Erişim Yönetimi) adlı bir hizmet sağlar. Bu, AWS hizmetleriyle etkileşime girmesi gereken belirli bir kişi veya uygulama için ayrı bir hesap oluşturmanıza olanak tanır.
Oluşturduğunuz AWS hizmetleriyle etkileşime giren bireyleri veya uygulamaları temsil eden IAM kullanıcılarına farklı düzeylerde izinler atayabilirsiniz. IAM kullanıcıları ile, her kullanıcının yalnızca ihtiyaç duyduğu kaynaklara erişebildiğinden ve daha fazlasına erişemediğinden emin olabilirsiniz.
Güvenlik amacıyla, Django projeniz için S3 klasörünüzle etkileşime girecek bir IAM kullanıcısı oluşturmalısınız. AWS'de bir IAM kullanıcısı oluşturmak için şu adımları izleyin:
- Arama çubuğuna yazın BEN ve ilk seçeneği seçin. Yeni bir sayfa görünecektir.
- IAM sayfasının sol tarafında, Kullanıcılar, ardından tıklamaya devam edin kullanıcı ekle düğme. Bazı bilgileri doldurmak için başka bir sayfa açılacaktır.
- IAM kullanıcısı için bir ad girerek başlayın ve Sonraki alttaki düğme: Bir sonraki sayfada, IAM kullanıcısı için izin seviyelerini seçmelisiniz. Bu adımları takip et:
- İlk olarak, Politikaları doğrudan ekleyin seçeneği İzin seçenekleri bölüm.
- Ardından, IAM kullanıcınız için bir izin politikası tanımlayın. Bu, IAM kullanıcısının neleri yapıp neleri yapamayacağını belirleyecektir. Django uygulamanızın dosyaları indirmesini ve yüklemesini istediğiniz için, ona S3 klasörüne tam erişim vermelisiniz.
- İçinde İzin politikaları bölümünde arama yapmalısınız S3Tam Erişim ve seçeneği seçin. Bittiğinde, tıklayın Sonraki düğme.
- Ardından, IAM kullanıcısı için politikaları inceleyin ve Kullanıcı oluştur IAM kullanıcınızı oluşturmak için düğme.
4. Adım: IAM Kullanıcınız için bir Erişim Anahtarı Oluşturun
AWS'de erişim anahtarı, kimlik doğrulaması yapmak ve AWS kaynaklarına program aracılığıyla güvenli bir şekilde erişmek için kullanabileceğiniz kimlik bilgilerini ifade eder. Django projeniz, S3 klasörünüze erişmek için bu kimlik bilgilerini sağlamalıdır.
Aşağıdaki adımlar, projeniz için bir erişim anahtarı oluşturmanıza yardımcı olacaktır.
- IAM kullanıcınızı oluşturduktan sonra, kullanıcıyı görüntülemenizi isteyen bir uyarı mesajı alırsınız. Alternatif olarak, üzerine tıklayarak kullanıcıyı görüntüleyebilirsiniz. Kullanıcı adı.
- Ardından, Güvenlik kimlik bilgileri sekmesini bulmak için aşağı kaydırın. Erişim anahtarları bölümüne gidin ve seçin Erişim anahtarı oluştur.
- AWS'nin uygun olduğunda alternatif bir seçenek önerebilmesi için erişiminiz için bir kullanım durumu seçmeniz gerekir. Erişim anahtarınızı etkilemez. gibi bir seçenek seçmekten çekinmeyin. Üçüncü taraf hizmeti veya yerel kod ve açılan uyarıyı onaylayın. Bittiğinde, tıklayın Sonraki düğme.
- Sonraki sayfada, erişim anahtarınız için bir açıklama etiketi girin ve Erişim anahtarı oluştur düğme.
- Erişim anahtarınızı oluşturduktan sonra kimlik bilgilerinizi kopyalayabilir veya CSV dosyası olarak indirebilirsiniz. Her iki durumda da, bu verileri güvende ve emniyette tuttuğunuzdan emin olun.
5. Adım: Django Projenizi S3 Kovası için Yapılandırın
S3 klasörünüzü bir Django projesiyle kullanmak için şu paketleri kurun:
- django depoları: Bu paket, dosyalarınız için bir depolama arka ucu tanımlamanıza yardımcı olacaktır.
- boto3: Bu paket AWS'dir Yazılım Geliştirme Kiti (SDK) Python projenizin AWS ile etkileşime girmesine yardımcı olmak için.
Bu paketleri bilgisayarınıza kurabilirsiniz. Python sanal ortamı terminalinize bu komutu yazarak Python'un Pip paket yöneticisi ile:
pip install django-storages boto3
Bu paketleri başarıyla yükledikten sonra, ayarlar.py dosyala ve ekle boto3 yüklü uygulamalara.
Yapılacak son şey, Django projenizi AWS S3 klasörünü kullanacak şekilde yapılandırmaktır. İşte kullanılacak genel yapılandırma:
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'
Yukarıdaki yapılandırmayı bilgisayarınıza yapıştırın ayarlar.py dosyalayın ve değerleri uygun şekilde değiştirin. değiştirin AWS_ACCESS_KEY_ID Ve AWS_SECRET_ACCESS_KEY daha önce kopyaladığınız veya indirdiğiniz erişim anahtarı ve gizli erişim anahtarı ile. Ayrıca değiştirmelisiniz AWS_STORAGE_BUCKET_NAME Ve AWS_S3_REGION_NAME S3 klasörünüzün ve bölgenizin adlarına.
Bölge adını, S3 grubunuza giderek ve son değerleri kopyalayarak alabilirsiniz. AWS bölgesi kolon.
6. Adım: AWS Yapılandırmanızı Test Edin
Yukarıdaki adımlar tamamlandıktan sonra, dosya yükleyerek uygulamanızı test etmeye hazır olmalısınız. Aşağıdaki kod örnekleri, dosyaları doğrudan yönetici panelinden yükleyecektir, ancak sizinkini başka bir yerden yüklemekte özgürsünüz.
Bağlam için, şuna benzeyen bir modele sahip olabilirsiniz:
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
Projeniz için gerekli taşıma, yönetici paneline ekleme, görünüm oluşturma gibi gerekli işlemleri ve diğer işlemleri yaptığınızdan emin olun. Pratik yaptığınızdan emin olun Django'nun MVT prensibi.
İşiniz bittiğinde, yönetici panelinize veya dosya yükleme için oluşturduğunuz herhangi bir forma gidin ve bir resim dosyası yükleyin.
Ana sitenize gidin ve görüntünün orada olduğunu onaylayın. Öyleyse, resme sağ tıklayın ve seçin Resmi yeni sekmede aç seçenek. Görüntüyü içeren yeni sekmede, adres çubuğunun daha önce oluşturduğunuz S3 klasörünü referans aldığını fark edeceksiniz:
Yapılandırmanızın çalıştığını doğrulamanın başka bir yolu da AWS konsolunda klasörünüze gitmektir. Resminizi orada bulacaksınız:
7. Adım: Statik Dosyaları S3 Kovanıza Toplayın
Şimdiye kadar medya dosyalarını S3 klasörünüze yükleyebildiniz; şimdi, statik dosyalarınızı yüklemeniz gerekiyor.
Bunu yapmak için, bu yapılandırmaları ayarlar.py dosya:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_LOCATION = 'static'
Bundan sonra, açın Komut Satırı Arayüzü (CLI) ve bu komutu çalıştırın:
python manage.py collectstatic --noinput
Her şeyin çalıştığını doğrulamak için AWS konsolunda S3 klasörünüzü açın. adlı bir klasör göreceksiniz. statik.
Çok Daha Fazlası İçin AWS S3 Kovasını Kullanın
AWS S3 klasörlerinin olanakları muazzamdır! S3'ü tanımalı ve statik bir web uygulamasını barındırmak gibi başka amaçlar için S3'ü nasıl kullanacağınızı öğrenmelisiniz.
S3 gruplarını doğru bir şekilde nasıl kullanacağınızı bilmek size çok zaman kazandıracak ve daha iyi bir ürün veya çözüm oluşturmanıza yardımcı olacaktır. Ancak S3'ün her durum için uygun olmayabileceğini de bilmelisiniz, bu nedenle kullanmadan önce proje gereksinimlerinizi göz önünde bulundurun.