SORU
30 NİSAN 2012, PAZARTESİ


Nasıl set-up statik dosyalar ve medya dosyaları için django-Depo ve Amazon S3, ama farklı klasörler ile Django projesi için?

Statik dosyaları (STATIC_ROOT) ve kullanıcı tarafından yüklenen dosyaları (MEDIA_ROOT) uygulamaları saklamak için sunucu dosya sistemi kullanan Django bir proje yapılandırma ediyorum.

Şimdi Amazon içerik bu kova yarattım yani S3, tüm ana bilgisayara ihtiyacım var. boto depolama arka uç ile django-storages kullanarak, S3 kova için toplanan statik yüklemeyi başardım:

MEDIA_ROOT = '/media/'
STATIC_ROOT = '/static/'

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'KEY_ID...'
AWS_SECRET_ACCESS_KEY = 'ACCESS_KEY...'
AWS_STORAGE_BUCKET_NAME = 'bucket-name'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

Sonra, bir sorunum var: MEDIA_ROOT STATIC_ROOT kova kök statik dosyaları ve kullanıcı içeren bir kova içinde kullanılan karşıya yollar.

O zaman atabilirim:

S3_URL = 'http://s3.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL   STATIC_ROOT
MEDIA_URL = 'S3_URL   MEDIA_ROOT

Ve şablonları bu ayarları kullanın, ancak django-storages ile S3 saklarken statik/medya dosyalarının ayrım yoktur.

Bu nasıl yapılabilir?

Teşekkürler!

CEVAP
30 Mayıs 2012, ÇARŞAMBA


Aşağıdaki çalışma, ve çok benzer olsa da: Mandx yöntemi daha basit olmalı bence

s3utils.py bir dosya oluşturun:

from storages.backends.s3boto import S3BotoStorage

StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage  = lambda: S3BotoStorage(location='media')

settings.py içinde:

DEFAULT_FILE_STORAGE = 'myproject.s3utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 'myproject.s3utils.StaticRootS3BotoStorage'

Farklı ama ilgili bir örnek aslında test ettim) example_ iki dosya here görülebilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eHow

    eHow

    27 NİSAN 2006
  • KIT KAT

    KIT KAT

    3 EKİM 2005
  • Rootjunky.com

    Rootjunky.co

    22 EKİM 2011