0

Django上下文:在 Centos环境中实现 prod web 项目。

我正在尝试解决一个不起作用的文件存储操作功能,但我不明白为什么?...也许是权限问题...

我有一个几乎相同的功能......

 功能

import os
def manager_file_tasks(file, archive_path):

    print(file, archive_path)
    # i got this : file.csv /MYHOME/Site_Django/media/archive_file/uploadedFiles

    tmp_archive_path = os.path.join(BASE_DIR, 'visualisation', 'UploadFiles', 'file')

    # Test if the folder archive exist
    if not os.path.exists(tmp_archive_path):
        os.makedirs(tmp_archive_path)

    print(tmp_archive_path)
    # i got this : /MYHOME/Site_Django/visualisation/UploadFiles/file

    fs = FileSystemStorage(location=tmp_archive_path)

    print(fs)
    # i got this : <django.core.files.storage.FileSystemStorage object at 0x7f57f622bda0>

    print(armdb_file.name, armdb_file)
    # i got this : file.csv file.csv

    print(fs.save(armdb_file.name, armdb_file))
    # NO RESULT .... :(

    filename = fs.save(armdb_file.name, armdb_file)
    print(filename)
    armdb_file = fs.path(filename)
    print(armdb_file)

    # some other stuffs are made after....

 这里文件夹的权限:

[me@web01]$ ll /MYHOME/Site_Django/visualisation/UploadFiles/
total 0
drw-r--r--. 2 apache apache 6 10 oct.  11:22 file

编辑 1

我认为我解决了部分问题(遇到 SELinux)

使用此命令行:

sudo chcon -t httpd_sys_content_t /MYHOME/Site_Django -R

编辑 2

该文件不存在于我的 tmp 文件夹中:/ 即使是 python 代码:

print(file.file.name)

返回

/tmp/tmp1t_ahpg4.upload.csv

我不能用那个读取这个文件:

with open(file,"r") as f:

    print(f.read())

在此先感谢您的帮助。

4

0 回答 0