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())
在此先感谢您的帮助。