我将文件上载到FTP服务器:默认文件存储= '存储.后端.ftp. FTP存储' FTP存储位置= f 'ftp://{FTP用户}:{FTP通过}@{FTP本地主机}:21/上载/'但是我无法在django项目中下载它们。也许你应该重写MEDIA_ROOT和MEDIA_URL?谁能帮忙?媒体URL = '/media/'媒体根= os.path.join(FTP_STORAGE_LOCATION,)我尝试更改媒体根,但没有任何效果
hpcdzsge1#
使用FTPStorage时,应将MEDIA_ROOT和MEDIA_URL设置为服务器上存储上载文件的位置以及访问这些文件的URL。以下是www.example.com的配置示例settings.py:
MEDIA_URL = 'http://example.com/media/' MEDIA_ROOT = 'ftp://user:password@ftp.example.com/path/to/media/' DEFAULT_FILE_STORAGE = 'storages.backends.ftp.FTPStorage'
请确保将MEDIA_URL和MEDIA_ROOT的值替换为您自己的FTP服务器详细资料。此外,请确保在MEDIA_ROOT URL中指定的用户具有访问和修改远程目录所需的权限。然后,当你想在Django代码中访问上传的文件时,你可以使用file字段的url属性,它会根据MEDIA_URL设置生成URL:
from django.db import models class MyModel(models.Model): file = models.FileField(upload_to='uploads/') my_model = MyModel.objects.first() file_url = my_model.file.url
这将返回类似http://example.com/media/uploads/myfile.pdf的URL,可用于从FTP服务器下载文件。
1条答案
按热度按时间hpcdzsge1#
使用FTPStorage时,应将MEDIA_ROOT和MEDIA_URL设置为服务器上存储上载文件的位置以及访问这些文件的URL。
以下是www.example.com的配置示例settings.py:
请确保将MEDIA_URL和MEDIA_ROOT的值替换为您自己的FTP服务器详细资料。此外,请确保在MEDIA_ROOT URL中指定的用户具有访问和修改远程目录所需的权限。
然后,当你想在Django代码中访问上传的文件时,你可以使用file字段的url属性,它会根据MEDIA_URL设置生成URL:
这将返回类似http://example.com/media/uploads/myfile.pdf的URL,可用于从FTP服务器下载文件。