Heroku新手&亞馬遜S3,請耐心等待。將我的Django應用上傳到Heroku,並且遇到用戶媒體上傳的問題。型號如下:從Heroku上傳媒體到亞馬遜S3
#models.py
class Movie(models.Model):
title = models.CharField(max_length = 500)
poster = models.ImageField(upload_to = 'storages.backends.s3boto')
pub_date = models.DateTimeField(auto_now_add = True)
author = models.ForeignKey(User)
海報屬性是圖片上傳的地方。我在本地運行良好,現在在Heroku上出現錯誤。所以我添加了'storages.backends.s3boto',就像其他許多帖子告訴我的一樣。 (不知道是否正確)。
我Settings.py文件看起來像這樣,現在,那種亂七八糟:
#settings.py
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
PROJECT_DIR = os.path.join(PROJECT_ROOT, '../qanda')
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = '****************'
AWS_SECRET_ACCESS_KEY = '************'
AWS_STORAGE_BUCKET_NAME = 'mrt-assets'
AWS_PRELOAD_METADATA = True
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'qanda/media/movie_posters/)
MEDIA_URL = '/media'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = 'https://mrt-assets.s3.amazonaws.com/static/'
STATICFILES_DIRS = (os.path.join(PROJECT_DIR, 'static'),)
我鬥被稱爲地鐵資產,並有在那裏靜(CSS,JS,圖片2個文件夾和我現在不太擔心靜態文件,因爲我已經將CSS/JS文件硬編碼到我的HTML文件*中,但是如何將我的用戶上傳的媒體(任何類型的圖像)轉換爲mrt資產/ media?
*雖然如果有人想幫助使用STATIC文件,那太棒了,但是用戶上傳的媒體更加緊急
編輯(根據Yuji的評論):
已經嘗試了一些選項,並沒有一個工作。我已經走了回來,並刪除了很多的變化,這就是我現在的設置
#settings.py
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
MEDIA_ROOT = 'http://s3.amazonaws.com/mrt-assets/media/'
MEDIA_URL = '/media/'
STATIC_ROOT = 'http://s3.amazonaws.com/mrt-assets/static/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, "templates"),)
#models.py
#same as before, but now have changed the poster directory
poster = models.ImageField().
不能確定做什麼,需要我的Heroku應用程序連接到S3所以用戶上傳的媒體被保存在那裏。
現在已經改變了我S3桶這一
克里斯,有什麼錯誤?我有一個特定的S3Boto問題,不得不恢復到Heroku的舊版本 –
Yuji,將編輯問題以填寫當前狀態。提前致謝! –
嘗試使用[鏈接](https://github.com/jamstooks/django-s3-folder-storage)Django s3文件夾存儲。遵循git中的指令,添加到INSTALLED_APPS元組中,添加到requirements.txt中,但得到錯誤s3文件夾存儲。 –