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

Running .net core web app on AWS Beanstalk - file write permissions

好的,我有一个用 .NET Core 编写的 Web 应用程序,我已将其部署到 AWS Elastic beanstalk,这非常简单,但我已经遇到了障碍。

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

我看到了一些关于创建一个名为 .ebextensions 的文件夹的事情,该文件夹包含一个配置文件,其中包含一些容器命令以在部署后设置对某些 paths/files 的权限,我已经尝试过这样做,但事实并非如此似乎为我做了任何事情——我什至不知道这些命令是否正在执行,所以我不知道发生了什么,如果有的话。

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

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

.config 文件的名称与 AWS 中的应用程序名称匹配,但我也在某处看到名称无关紧要,只要它具有 .config 扩展名即可。

有人成功做过这样的事情吗?任何指点表示赞赏。

与其尝试修复写入 AWS Elastic Beanstalk 中的本地存储的权限问题,不如建议使用 Amazon S3 之类的方法来存储文件。一些好处是:

  • 不必担心文件权限。
  • S3 文件是持久的。
  • 您可能 运行 在重新发布应用程序时遇到丢失本地文件的问题。
  • 如果您转而使用诸如容器之类的东西,每次取下容器时都会丢失文件。
  • S3 使用起来非常便宜。