【问题标题】:Running .net core web app on AWS Beanstalk - file write permissions在 AWS Beanstalk 上运行 .net core Web 应用程序 - 文件写入权限
【发布时间】:2019-08-18 01:56:11
【问题描述】:

好的,所以我有一个用 .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 扩展名即可。

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

【问题讨论】:

  • 在我对 EB 一无所知的情况下,我可以建议您根本不要写入文件系统吗?它可能很脆弱,并且会出现您所看到的问题。例如,为什么不将文件推送到 S3 存储中?
  • 这很可能是一个选择。使用文件系统的最初原因是为了避免为此使用数据库,因为应用程序根本不需要数据库。我可能会看看 S3 存储,谢谢。
  • 刚刚快速浏览了一下 S3 存储,它似乎正是我所需要的。我将使用它而不是文件系统。感谢您的意见。
  • 好的,我已经在这里回答并清理了我的cmets。

标签: amazon-web-services asp.net-core file-permissions amazon-elastic-beanstalk


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 2021-08-03
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2021-08-05
    • 2021-12-04
    相关资源
    最近更新 更多