5
จะตั้งค่าโครงการ Django ด้วย django-storages และ Amazon S3 ได้อย่างไร แต่มีโฟลเดอร์ต่างกันสำหรับไฟล์คงที่และไฟล์มีเดีย
ฉันกำลังกำหนดค่าโครงการ Django ที่ใช้ระบบไฟล์เซิร์ฟเวอร์เพื่อจัดเก็บไฟล์คงที่ของแอป ( STATIC_ROOT) และไฟล์ที่ผู้ใช้อัปโหลด ( MEDIA_ROOT) ตอนนี้ฉันต้องการโฮสต์เนื้อหาทั้งหมดใน S3 ของ Amazon ดังนั้นฉันจึงสร้างที่เก็บข้อมูลสำหรับสิ่งนี้ เมื่อใช้django-storagesกับbotoแบ็กเอนด์ที่เก็บข้อมูลฉันจัดการเพื่ออัปโหลดสถิติที่รวบรวมไปยังที่เก็บ S3: 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' จากนั้นฉันพบปัญหา: MEDIA_ROOTและSTATIC_ROOTไม่ได้ใช้ภายในที่เก็บข้อมูลดังนั้นที่เก็บข้อมูลรูทจึงมีทั้งไฟล์คงที่และเส้นทางที่ผู้ใช้อัปโหลด ดังนั้นฉันจึงสามารถตั้งค่า: S3_URL = 'http://s3.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME STATIC_URL = S3_URL + STATIC_ROOT MEDIA_URL …