访问 AWS Elastic Beanstalk .net core 应用程序中的 wwwroot 文件夹

2024-01-09

在过去的几天里,我一直在尝试找出为我的 EB .net core 项目存储图像的最佳方法。当我最初开发它时,我只是将图像存储在wwwroot/images/{whatever I needed}目录。然而,我在部署后不久发现该项目没有权限写入(并且可能读取,目前还无法知道)该文件夹。

我收到的具体错误消息是"Access to the path 'C:\\inetpub\\AspNetCoreWebApps\\app\\wwwroot\\images' is denied

我尝试过集成AWS的EFS,但我似乎也无法弄清楚。我添加了storage-efs-mountfilesystem.configAWS EB EFS 文档中提到的文件,但无济于事。我不仅无权访问任何名为/efs,我什至不确定这是正确的道路。

我看到的唯一可用选项是将所有图像作为 blob 存储在数据库中,我真的宁愿避免这种情况。

我尝试使用此答案访问 wwwroot 文件夹here https://stackoverflow.com/a/27393459/4765038,但我得到的回应似乎没有任何变化。

我有合同在身,需要尽快启动并工作,而不是稍后。如果必须的话,我会走数据库路线,但这不是一个长期选择。尽管它是一个小型应用程序,并且在可预见的未来将只有一个活跃用户。

以防万一您需要的文件上传代码如下:

[Route("Image"), HttpPost()]
    public async Task<ResponseInfo> SaveImage()
    {
        try
        {
            var file = Request.Form.Files.FirstOrDefault();
            if (file != null && file.Length > 0)
            {
                if (file.Length > _MaxFileSize)
                {
                    return ResponseInfo.Error($"File too large. Max file size is { _MaxFileSize / (1024 * 1024) }MB");
                }
                var extension = Path.GetExtension(file.FileName).ToLower();
                if (extension == ".png" || extension == ".jpg" || extension == ".jpeg" || extension == ".gif")
                {
                    var filename = String.Concat(DateTime.UtcNow.ToString("yyyy-dd-M--HH-mm-ss"), extension);
                    var basePath = Path.Combine(_Env.WebRootPath, "images", "tmp");
                    if (Directory.Exists(basePath) == false)
                    {
                        Directory.CreateDirectory(basePath);
                    }
                    using (var inputStream = new FileStream(Path.Combine(basePath, filename), FileMode.Create))
                    {
                        try
                        {
                            await file.CopyToAsync(inputStream);
                            return ResponseInfo.Success(filename);
                        }
                        catch (Exception ex)
                        {
                            ex.Log();
                            return ResponseInfo.Error("Failed to save image");
                        }
                    }
                }
                else
                {
                    return ResponseInfo.Error($"File type not accepted. Only PNG, JPG/JPEG, and gif are allowed");
                }
            }
        }
        catch (Exception ex) {
            return ResponseInfo.Error(ex.Message);
        }
        return ResponseInfo.Error("No files received.");
    }

如果重要的话,我正在运行最新的 VS 2017 社区。使用发布到 awsAWS Toolkit for Visual Studio 2017 V1.14.4.1.


我可能会迟到,但这可能会对其他人有所帮助。但是,我们无法访问 wwwroot,但我们创建了一个新目录并对代码进行了更改以从该路径访问文件。

我们已经在项目中添加了一个文件夹.ebextensions在其下我们添加了一个文件dirAccess.config(名称可以不同)

目录访问配置

commands:
  0_:
    command: 'if not exist "C:\\inetpub\\assets" mkdir C:\\inetpub\\assets'
  1_:
    command: 'icacls "C:\\inetpub\\assets" /grant "IIS APPPOOL\DefaultAppPool:(OI)(CI)F"'
  2_:
    command: 'icacls "C:\\inetpub\\assets"'

请确保此文件夹(.ebextensions) 包含在发布 zip 中。

要在发布中包含该文件夹,需要添加以下行.csproj

  <ItemGroup>
    <None Include=".ebextensions\alarms.config">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Include=".ebextensions\assetsDirectory.config">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问 AWS Elastic Beanstalk .net core 应用程序中的 wwwroot 文件夹 的相关文章

随机推荐

  • 在 R 中绘制多元逻辑回归模型的结果

    我想绘制针对调整后的特定自变量 即独立于模型中包含的混杂因素 与结果 二元 关系的多元逻辑回归分析 GLM 的结果 我看过推荐使用以下方法的帖子predict命令后跟curve 这是一个例子 x lt data frame binary o
  • 如何使用实体框架 6 执行全文搜索

    我有疑问 var query DataContext Fotos Where x gt x Pesquisa Contais myTerm 生成的SQL是 SELECT FROM Fotos AS Extent1 WHERE Extent1
  • 在 WebClient 中接受 Cookie?

    我刚刚开始尝试 C WebClient 我所拥有的是下面的代码 它从网站获取 html 代码并将其写入 txt 文件中 我遇到的唯一问题是 某些网站要求您在使用该网站之前接受 cookie 这导致的原因是它没有将真正的网站 html 代码写
  • Sharpsign 等号阅读器宏的示例?

    我见过这个使用过一次 但无法理解它的作用 参考文献说它是 n object读取为以 object 作为其打印表示的任何对象 然而 该对象被标记为 n 这是必需的 无符号十进制整数 可通过语法 n 进行参考 标签的范围是最外层正在读取的表达式
  • 计算/异步数据获取

    我正在尝试创建简单的 Vue CouchDB 应用程序 使用 Vanilla JS 可以正常工作 但我无法通过 Promise 或异步函数从数据库获取数据到我的 vue 实例 这是我的代码 app html div table thead
  • Cassandra 中写入总是比读取快吗?

    我在听这次演讲 https www youtube com watch v zyZ35YyT 8Cassandra 中的数据建模 演讲者的总体说法是 Cassandra 中的写入速度比读取速度快 这种情况总是正确的吗 如果是这样为什么 尽管
  • Python 分布式计算(作品)

    我正在使用旧线程发布试图解决相同问题的新代码 什么构成了安全的泡菜 this http docs python org library crypto html sock py from socket import socket from s
  • _Bool 和 bool:如何解决使用 _Bool 的 C 库的问题?

    我用 C 语言编写了一系列数据结构和函数 其中一些使用 Bool 数据类型 当我开始时 该项目将是纯 C 的 现在我正在研究使用基于 C 的 GUI 工具包 并将后端代码放入库中 但是 在编译 C GUI 时 编译器会发出以下错误 ISO
  • Angular ng-submit 被调用两次

    我有一个有角度的表单 其提交方法被击中两次 我不明白为什么 我对 Angular 还很陌生 所以我可能忽略了一些相当简单的东西 Html div div
  • 如何完全禁用 WooCommerce 产品类型的运输?

    我想禁用为特定产品类型选择运输方式的要求 此处为 预订 产品类型 在结账时 因此 他们应该能够购买无需运输方式的产品 要在购物车中有特定产品类型时完全禁用运输 您将使用以下命令 add filter woocommerce cart nee
  • 自定义 Flutter Service Worker

    Flutter 自动生成 Service Workerflutter service worker js在为网络构建时 但我想为第三方路由添加我自己的获取 缓存规则 我怎样才能做到这一点 到目前为止 我发现的唯一解决方法是制作一个脚本来后处
  • JavaScript 中的“双波浪号”(~~) 运算符是什么? [复制]

    这个问题在这里已经有答案了 我在一些代码中看到了这一点 但我不知道它的作用 var jdn function y m d var tmp m lt 2 1 0 return 1461 y 4800 tmp 4 367 m 2 12 tmp
  • -Android 3 浏览器中的 webkit-tap-highlight-color

    我们有一个包含许多输入的表单 每当我点击表单时 它就会突出显示为灰色 I have webkit tap highlight color rgba 255 255 255 0 我也使用了rgba 255 255 255 0 这会在 iOS5
  • Microsoft.Graph 获取组的所有用户

    我正在使用 Microsoft Graph 我想返回特定组中所有用户的列表 我找不到任何关于此的易于理解的信息 我尝试过使用 Request Expand x gt x Members 但这只返回 20 个用户 并且它们不会被分页 参见he
  • React-bootstrap 按钮 bsStyle

    好吧 我显然错过了一些东西 但现在无法弄清楚 import React from react import Button from react bootstrap let App React createClass render funct
  • 在 Cors 中发送原始 cookie 不适用于 VideoJS

    我有以下子域 stream example com sub example com 这两个域都有 SSL 证书并且有效 我在用videoJS 7 6 6其中有http streaming https github com videojs h
  • 如何检查Android中指纹认证的设备兼容性

    我正在使用 android 6 0 api 进行指纹身份验证 我的要求是 如果当前设备支持指纹认证 那么我将进行指纹认证 否则将使用正常方式登录应用程序 所以 任何人都可以告诉我 如何检查 Android 中指纹认证的设备兼容性 提前致谢
  • 带有 python 列表和拆分的 IndexError 消息

    我正在尝试学习 python 并深入研究字符串函数 作为一个简单的例子 我写了这个 example line username 231 2 gecos field home dir usr bin false FILENAME etc pa
  • d3.在 inkscape 上选择:label=“foo”

    我正在尝试按其选择一个图层inkscape label属性能够在网站上显示 隐藏图层 function hideFOO if d3 select hideFOO checked node d3 select layer11 attr vis
  • 访问 AWS Elastic Beanstalk .net core 应用程序中的 wwwroot 文件夹

    在过去的几天里 我一直在尝试找出为我的 EB net core 项目存储图像的最佳方法 当我最初开发它时 我只是将图像存储在wwwroot images whatever I needed 目录 然而 我在部署后不久发现该项目没有权限写入