0
我想在亞馬遜的S3服務上傳MEDIA_FILES。我想先將它們上傳到bucket的根目錄下,然後在保存文件之前創建子文件夾。我的測試模型很簡單使用S3與Django的存儲和上傳圖像
from django.db import models
# Create your models here.
class TestModel(models.Model):
name = models.CharField(max_length=10)
logo = models.ImageField(upload_to='pictures/')
class Meta:
verbose_name = ('TestModel')
verbose_name_plural = ('TestModels')
def __unicode__(self):
pass
我有一個名爲圖片已經創建的子文件夾。
settigns.py
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'id'
AWS_SECRET_ACCESS_KEY = 'secret_key'
AWS_STORAGE_BUCKET_NAME = 'mybucket'
from S3 import CallingFormat
AWS_CALLING_FORMAT = CallingFormat.SUBDOMAIN
但是,當我嘗試從管理面板我收到以下錯誤添加TestModel
Request URL: http://127.0.0.1:8000/admin/testmodel/testmodel/add/
Django Version: 1.6.4
Exception Type: TypeError
Exception Value:
'NoneType' object has no attribute '__getitem__'
是否S3和Django的儲存工作,就像之前? MEDIA_URL在使用s3時設置的值是多少?使用S3和django-storage時,MEDIA_ROOT的值是多少?
我可以使用this way將文件上傳到S3服務嗎?這是我第一次使用雲存儲,所以我有點困惑。
我知道媒體的根是什麼,我問的是如何將它設置成與django-storage和s3一起使用它。自從django-storages使用它之後,我也知道它們。 – Apostolos
我不好,沒注意你使用django-storage,我在我的項目中使用了tinyS3。 – privaloff
沒問題我想我正在使用這個http://stackoverflow.com/a/10825691/2349589 – Apostolos