簡體   English   中英

嘗試從 heroku 上傳到 s3 時出現 TypeError

[英]Getting TypeError when trying to upload to s3 from heroku

錯誤:/accounts/work_feed/upload/1 序列項 0 處的 TypeError:預期的 str 實例,未找到 NoneType

當我嘗試將圖像從 heroku 上的 django 應用程序上傳到 aws s3 存儲桶時,出現此錯誤。

我的 settings.py 看起來像:

ROOT_URLCONF = 'ClassTrail.urls'

DATABASES = {
    'default': dj_database_url.config()
}

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = 'static/'

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

django_heroku.settings(locals())

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')

AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')

AWS_STORAGE_BUCKET_NAME = os.environ.get('BUCKET_NAME')

S3_URL = 'https://%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME

AWS_QUERYSTRING_AUTH = False

(我刪掉了一些不相關的settings.py)

我的應用程序在本地與 postgres 和 aws 完美配合,但是當我在 heroku 上運行網站時,除了將文件上傳到 aws 之外,一切正常。

我已經使用 heroku config:set 在 heroku 上設置了環境變量。

我的存儲桶策略是:

{
    "Version": "2012-10-17",
    "Id": "Policy1648918943307",
    "Statement": [
        {
            "Sid": "Stmt1648918911640",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::classtrailstorage/*"
        }
    ]
}

我試圖用以下方法設置 cors:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "HEAD",
            "POST",
            "PUT"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]

感謝您的任何幫助!

好的,經過數小時的調試並嘗試不同的方法使其正常工作后,問題是我將 heroku 配置變量設置為:AAWS_ACCESS_KEY_ID 而不是 AWS_ACCESS_KEY_ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM