这可能是服务器故障的问题,但由于它涉及 django 应用程序,因此如下:
我有一个 django 应用程序,它允许通过文件上传字段将文件上传到媒体目录。
def content_file_name(instance, filename):
return '/'.join([ instance.client, instance.job_number, instance.post_type + "_" + instance.post_round, instance.job_number + "-" + instance.cell_number, filename])
class PostEntry(models.Model):
...
add_pdf = models.NullBooleanField()
link_pdf = models.FileField(upload_to=content_file_name, blank=True, null=True)
add_html = models.NullBooleanField()
link_html = models.FileField(upload_to=content_file_name, blank=True, null=True)
add_zip = models.NullBooleanField()
link_zip = models.FileField(upload_to=content_file_name, blank=True, null=True)
...
我还通过 ftp 将媒体目录提供给其他用户。尽管我已将媒体目录的权限设置为允许对其中的所有文件和子目录进行读取、写入和递归执行,但在我设置权限后,它仍然不允许对 django 创建的任何子目录进行 ftp 操作。也就是说,如果我通过 ftp 客户端访问我新创建的子目录(在我的媒体目录中),默认情况下,我没有权限将文件拖入或从所述目录中删除文件。
在设置中,我将 FILE_UPLOAD_PERMISSIONS 选项设置为 0644。正如我所料,它没有任何区别。有没有办法设置 django 以便它创建可以写入应用程序外部的目录?还是必须在操作系统级别设置此行为?