在AWS Beanstalk上运行.net核心Web应用程序 - 文件写入权限

问题描述 投票:0回答:1

好的,所以我有一个用.NET Core编写的Web应用程序,我已经部署到AWS Elastic beanstalk这很容易,但我已经遇到了麻烦。

应用程序从外部源获取JSON数据并写入本地文件,当前位于项目根目录下的wwwroot / data / data.json。部署到AWS后,此功能在尝试写入文件时会抛出拒绝访问的异常。

我已经看到有关创建一个名为.ebextensions的文件夹,其中包含一些配置文件,其中包含一些容器命令,用于在部署后设置某些路径/文件的权限,我尝试过这样做,但这似乎对我没有任何作用 - 我甚至不知道这些命令是否被执行,所以我不知道发生了什么,如果有的话。

这是我在.ebextensions文件夹下创建的配置文件:

{
    "container_commands": {
        "01-aclchange": {
            "command": "icacls \"C:/inetpub/AspNetCoreWebApps/app/wwwroot/data\" /grant DefaultAppPool:(OI)(CI)",
         }
    }
}

.config文件的名称与AWS中的应用程序名称匹配,但我也读过某个名称无关紧要的地方,只要它具有.config扩展名。

有没有人成功做过这样的事情?任何指针赞赏。

amazon-web-services asp.net-core file-permissions amazon-elastic-beanstalk
1个回答
1
投票

我不会尝试修复写入AWS Elastic Beanstalk中的本地存储的权限问题,而是建议使用类似Amazon S3的内容来存储文件。一些好处是:

  • 不必担心文件权限。
  • S3文件是持久的。
  • 重新发布应用程序时,可能会遇到丢失本地文件的问题。
  • 如果你曾经使用像容器这样的东西,那么每次拆下容器时都会丢失文件。
  • S3的使用非常便宜。
© www.soinside.com 2019 - 2024. All rights reserved.