首页 > 解决方案 > 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 环境的新手,请帮忙。提前致谢

标签: djangoubuntuamazon-ec2

解决方案


推荐阅读