Python Django存储将文件字段和图像字段上载到Dropbox

Python Django存储将文件字段和图像字段上载到Dropbox,python,django,django-rest-framework,dropbox,python-django-storages,Python,Django,Django Rest Framework,Dropbox,Python Django Storages,(Django 2.0、Django Rest Framework 3.8、Python 3.6、Django Storages 1.7、Dropbox 9.1) 我正在尝试将文件上载到我创建的Dropbox应用程序文件夹,但每次尝试都会遇到相同的错误: C:/TrainerPics/UI_4.png'与模式'(/(.|[\r\n])*|id:..*)|(版本:[0-9a-f]{9,})|(ns:[0-9]+(/*)不匹配。 在桌面的Dropbox仪表板上,我要上载到的文件夹显示为: Dropb

(Django 2.0、Django Rest Framework 3.8、Python 3.6、Django Storages 1.7、Dropbox 9.1)

我正在尝试将文件上载到我创建的Dropbox应用程序文件夹,但每次尝试都会遇到相同的错误:

C:/TrainerPics/UI_4.png'与模式'(/(.|[\r\n])*|id:..*)|(版本:[0-9a-f]{9,})|(ns:[0-9]+(/*)不匹配。

在桌面的Dropbox仪表板上,我要上载到的文件夹显示为:

Dropbox>Apps>DjangoAppNameHere

这是我在
settings.py中的设置:

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

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

DEFAULT_FILE_STORAGE = 'storages.backends.dropbox.DropBoxStorage'
DROPBOX_OAUTH2_TOKEN = 'some_token_here'
其中,
存储
也列在已安装的应用程序中。以下是我试图上传的模型字段:

trainer_profile_pic = models.ImageField(upload_to="TrainerPics/", null=True, blank=True)

我尝试了使用
/
字符和不使用
/
字符,并尝试了使用
upload\u to=DjangoAppNameHere
文件字段和
ImageField
都没有成功。Dropbox的文档在django storages包中非常稀少,没有描述如何设置字段以使其工作。

错误消息来自Dropbox API,它表明提供的路径与预期格式不匹配。也就是说,当通过Dropbox API上传到Dropbox时,您需要为上传的文件提供所需的路径,格式与提供的模式匹配

最常用的格式是该模式的第一部分,它只是相对于Dropbox中根的远程路径的“/”分隔路径。例如:
'/TrainerPics/UI_4.png'

根据输出,您将提供一个类似于本地Windows文件系统路径的路径:
'C:/TrainerPics/UI_4.png'


您需要更新应用程序/配置以提供远程路径。

这是一个老问题,只是为了帮助可能有类似问题的人

我使用了两个选项

  • 上载文件时使用linux计算机。这将允许API上载您的映像,因为它可能与它们的服务器是同一个文件系统

  • 仅在服务器上使用DROPBOX API,在本地开发上使用本地文件存储。服务器在unix上运行,不会产生错误


  • 谢谢回复@Greg,你知道我该怎么做吗?我猜是在我的
    设置.py
    文件中的某个地方,但我不确定如何仅为
    文件字段
    图像字段
    实现此功能。对不起,我只能在Dropbox方面提供帮助。我没有使用django存储的经验。