django - media/final.xlsx 的权限被拒绝(错误号:13)
问题描述
我有一个托管在 AWS EC2 ubuntu 实例上的 django 应用程序。这是应用程序的文件夹结构,
|reco-api
├───api
│ ├───programs
│ │ ├───migrations
│ │ │ └───__pycache__
│ │ └───__pycache__
│ ├───reconciliation
│ │ ├───migrations
│ │ │ └───__pycache__
│ │ └───__pycache__
│ └───rules
│ ├───migrations
│ │ └───__pycache__
│ └───__pycache__
├───config
│ └───__pycache__
└───media
└───documents
├───input_files
└───output_files
final.xlsx
在 view.py 中,有一个视图将使用 pd.ExcelWriter 创建文件并将其存储在 media/ 文件夹下,文件名为 final.xlsx,我将再次读取该文件,这是代码,
writer = pd.ExcelWriter('media/final.xlsx') # creating a file under media folder
all_cols.to_excel(writer, index=False, sheet_name='all_columns')
reco_builder._original_df1.to_excel(writer, index=False, sheet_name=reco_builder._reconciler_doc_details_dict['company_name'])
reco_builder._original_df2.to_excel(writer, index=False, sheet_name=reco_builder._reconcilee_doc_details_dict['company_name'])
reco_builder._pivot.to_excel(writer, sheet_name='basic_pivot')
writer.save()
with open('media/final.xlsx', 'rb') as excel: #reading the file to store the reference in database
reco_iteration.output_file.save('media/final.xlsx', File(excel))
当我尝试创建一个 excel 文件时,我得到 Errno:13 权限被拒绝错误。我尝试了不同的权限,这是我尝试过的:
sudo chown :www-data reco-api
sudo chmod 777 reco-api/
sudo chown :www-data reco-api/media/
sudo chmod -R 777 reco-api/media/
sudo chown www-data:www-data reco-api
sudo chmod 777 reco-api/
sudo chown www-data:www-data reco-api/media/
sudo chmod -R 777 reco-api/media/
sudo chmod -R 777 reco-api/ # When I used this, I cannot make any request to backend, I always got permission denied error by apache
Atlast, I tried following this article, but no use - https://fedingo.com/how-to-fix-errno-13-permission-denied-error-in-django/
我是 django 和 ubuntu 环境的新手,请帮忙。提前致谢