请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于oss的问题

我按照老师的方法配置了oss服务,发现imagefield能够正常上传到oss但是filefield就没有上传到oss,这是为什么呢?
还有文件超过2M就报413  NGINX配置也改过的
老师有什么建议吗?非常感谢

正在回答

1回答

哦哦,如果imagefield可以的话,那filefield原理也是一样,你看dango_storage_oss的README有没有上传文件的设置,没有的话看之前说的backends.py的代码,自己实现上传File的类

上传文件太大的话,一是Nginx中设置client_max_body_size 20M;而是Django settings中设置

FILE_UPLOAD_MAX_MEMORY_SIZE = 26214400   #上传文件大小,改成25M DATA_UPLOAD_MAX_MEMORY_SIZE = 26214400  #上传数据大小,也改成了25M

参考: https://stackoverflow.com/questions/55190498/413-payload-too-large-on-django-server 


0 回复 有任何疑惑可以回复我~
  • 提问者 李嘉图principal #1
    我太菜了,看了半天也没能看出门道来,关于oss配置我这样写的
    MEDIA_URL='/media/'
    MEDIA_ROOT=os.path.join(BASE_DIR, 'media')
    
    #OSS配置
    DEFAULT_FILE_STORAGE = 'django_oss_storage.backends.OssMediaStorage'
    
    OSS_BUCKET_NAME = 'jcomapss-media'
    
    OSS_ENDPOINT = 'oss-cn-hangzhou.aliyuncs.com'  
    
    OSS_ACCESS_KEY_ID = 'LTAxxxxxxxxxxxxxxNc'
    
    OSS_ACCESS_KEY_SECRET = 'OCYxxxxxxxxxxxxxxxx8RUJw'
    
    
    FILE_UPLOAD_MAX_MEMORY_SIZE = 26214400  #上传文件大小,改成25M
    DATA_UPLOAD_MAX_MEMORY_SIZE = 26214400	#上传数据大小,也改成了25M
    
    这么写只有ImageFiled上传能到oss但FileField就是不行.........老师能帮看下吗
    回复 有任何疑惑可以回复我~ 2020-06-04 14:52:53
  • 提问者 李嘉图principal #2
    额  我知道了......ImageField和FileField是一样的就是我自己弄得
    from django.core.files.storage import FileSystemStorage
    from django.conf import settings
    import os
    
    class OverwriteStorage(FileSystemStorage):
    
        def get_available_name(self, name, max_length=None):
    
            if self.exists(name):
                os.remove(os.path.join(settings.MEDIA_ROOT, name))
            return name
    出的问题
    回复 有任何疑惑可以回复我~ 2020-06-04 16:16:42
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号