Sonunda bir geçici çözüm buldum. myapp.s3utils.py
dosyada
STATICFILES_STORAGE = 'myapp.s3utils.StaticRootS3BotoStorage'
DEFAULT_FILE_STORAGE = 'myapp.s3utils.MediaRootS3BotoStorage'
Ve bu:
benim settings.py
dosyasında bu var benim S3 kova 2 farklı (statik ve yüklemeler) klasörlere dosyalarımı yükleyemeyeceksiniz amacıyla
from storages.backends.s3boto import S3BotoStorage
StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='uploads')
Ancak Django'nun önbellek bozmayı kullanamazdım.
from storages.backends.s3boto import S3BotoStorage
from django.contrib.staticfiles.storage import ManifestFilesMixin
class CustomS3Storage(ManifestFilesMixin, S3BotoStorage):
pass
StaticRootS3BotoStorage = lambda: CustomS3Storage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='uploads')
Temelde bunu önbellek bozmayı kullanmanızı sağlar
ManiFestfilesMixin, ekler: çözüm benim
myapp.s3utils.py
dosyayı değiştirmek oldu.
Bir yan not olarak, yalnızca statik dosyalar için önbellek bozma özelliğini kullanabileceğimi, ancak yükleme dosyaları için kullanmadığımı görebilirsiniz. Bu nedenle, MediaRootS3BotoStorage, CustomS3Storage yerine S3BotoStorage sınıfını çağırır. Bu şekilde yapıyorum çünkü yükleme dosyaları sunucumda saklanmıyor (statik dosyalar), bunlar doğrudan S3 kovasına kaydediliyor, böylece collectstatic'u çalıştırdığımda sunucumda değiller. “Hash” isimlerini eklemek zorunda değilsiniz.
Vay, bu günümü kurtar! Birkaç saat boyunca bununla hiç uğraşmadan uğraşıyorum. Bu cevabın neden daha olumlu oylara sahip olmadığını anlamıyorum. Bu basit değişiklik s3utils.py benim için bir çekicilik gibi çalışır :) Teşekkürler dostum !!! – rdiaz82
'Statfiles.json' bu durumda, S3 veya yerel dosya sisteminde nerede saklanır? Ve her istek ile okunuyor mu? – Flimm
Soruma cevap vermek gerekirse, "staticfiles.json" S3'te saklanır, herkes tarafından görüntülenebilir ve her istekte okunmaz. – Flimm