相关疑难解决方法(0)

Amazon S3异常:"指定的密钥不存在"

我在Android应用程序中使用AmazonS3Client,使用getObject请求从我的Amazon S3存储桶下载图像.

目前,我得到了这个例外:

com.amazonaws.services.s3.model.AmazonS3Exception: 
The specified key does not exist.
 (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey;
Run Code Online (Sandbox Code Playgroud)

即使我能够在S3存储桶中看到具有指定键的对象.

android amazon-s3 amazon-web-services

56
推荐指数
6
解决办法
9万
查看次数

AWS CloudFront访问被拒绝到S3存储桶

我正在尝试设置CloudFront为我的S3存储桶中托管的静态文件.我有设置分发,但我AccessDenied在尝试浏览/CSS/stlyle.cssS3存储桶中的CSS()文件时得到:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>E193C9CDF4319589</RequestId>
    <HostId>
xbU85maj87/jukYihXnADjXoa4j2AMLFx7t08vtWZ9SRVmU1Ijq6ry2RDAh4G1IGPIeZG9IbFZg=
    </HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

我已将我的CloudFront分配设置为我的S3存储桶并创建了新的Origin Access Identity policy自动添加到S3存储桶:

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21XQ8NAGWMBQQ"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::myhost.com.cdn/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

我希望通过CloudFront提供此S3存储桶中的所有文件...

*更新*

这个云前端指南说:

默认情况下,您的Amazon S3存储桶及其中的所有对象都是私有的 - 只有创建存储桶的AWS账户才有权读取或写入其中的对象.如果要允许任何人使用CloudFront URL访问Amazon S3存储桶中的对象,则必须授予对象的公共读取权限.(这是使用CloudFront和Amazon S3时最常见的错误之一.您必须明确授予Amazon S3存储桶中每个对象的权限.)

所以基于此我已经为S3 bucket中的所有对象添加了新的权限Everyone Read/Download.现在我可以访问文件了.

但现在当我访问这样的文件https://d3u61axijg36on.cloudfront.net/css/style.css被重定向到S3 URI和HTTP.如何禁用此功能?

amazon-s3 amazon-web-services amazon-cloudfront

26
推荐指数
4
解决办法
2万
查看次数

如何解决 SPA 上的“x-cache: Error from cloudfront”

我们在尝试使用客户端路由器(反应路由器)使用 SPA 时遇到问题。我们正在使用 has a 的概念DOMAIN -> CDN (CloudFront) -> S3来为我们的静态文件提供服务。

我们已经配置了 S3 来提供静态文件。CDN 被配置为具有来自 S3 的源,我们已经配置了自定义错误页面来捕获错误:

在此处输入图片说明

使用此配置,我们可以捕获如下错误:

https://www.example.com/custom-url
Run Code Online (Sandbox Code Playgroud)

CDN 会将所有 404/403 错误重定向到主服务器index.htmlreact router并获得正确的路由。

我们有我们的网站,并且客户端路由器工作正常,但是我们的 CDN 响应有问题x-cache: Error from cloudfront

在此处输入图片说明

如果我们在https://www.example.com没有任何查询参数(不是查询字符串)的情况下访问主 url ,一切正常。

我该如何解决这个问题并使我的所有动态 URL 都能正常工作?

谢谢。

amazon-s3 static-site amazon-cloudfront react-router

16
推荐指数
1
解决办法
2万
查看次数

在 AWS S3 和 CloudFront 中托管 React Router 应用程序时出现 403 访问被拒绝错误

当我将 React Router 应用程序部署到 AWS S3 和 CloudFront 时,并且当我尝试直接访问 React 路由时,它会出现以下错误,并显示 403 错误代码。当它流经应用程序时,我可以访问基本 URL ( www.sample-app.com ) 和路由 URL ( www.sample-app.com/cart )。

但是如果我尝试直接进入 React 路由(www.sample-app.com/cart),它会产生 403 Access Denied 错误,如下所示。主要的痛点是当我尝试刷新 React 路由 URL 时它会产生此错误。

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
  <RequestId>REQUEST_ID</RequestId>   
  <HostId>HOST_ID</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

注意:我使用 AWS 负载均衡器和 Lambda 函数作为后端。我已设置 AWS ALB 和 Cloudfront 以使用 AWS Cognito 对用户进行身份验证。

感谢您对此的帮助。

amazon-s3 amazon-cloudfront reactjs react-router aws-application-load-balancer

16
推荐指数
4
解决办法
1万
查看次数

Azure 应用服务无法在 React-Redux Web 应用中使用自定义路由 - 需要通配符虚拟目录吗?

我有如下自定义路线:

// @flow

import React, { PureComponent } from 'react';
import { Switch, Redirect } from 'react-router-dom';
import { withRouter } from 'react-router';

import { Route } from 'components/Routes';
import Story from 'pages/Story';
import Page404 from 'pages/404';

class Routes extends PureComponent<{}> {
  render() {
    return (
      <Switch>
        <Route exact path="/" render={props => <Story {...props} />} />
        <Route
          exact
          path="/chapter/:id"
          render={props => <Story {...props} />}
        />
        <Route path="/404" render={props => <Page404 {...props} />} />
        <Redirect to="/404" /* Must be the last …
Run Code Online (Sandbox Code Playgroud)

javascript routes azure reactjs azure-web-app-service

7
推荐指数
2
解决办法
3999
查看次数

AWS S3 存储桶 - 子页面访问被拒绝

因此,我有一个 AWS S3 存储桶,用于托管我构建的 React 应用程序的文件。我使用 CodePipeline 构建和编译 React 应用程序,并将文件存储在通过 CloudFront CDN 提供服务的 S3 存储桶上。

当我从 root 访问 url 时,一切似乎都工作正常https://website.com。当我单击该页面上的“登录”时,我会被引导至以下路线https://website.com/auth/login,效果非常棒。

问题 如果我尝试直接访问该页面,https://website.com/auth/login则会收到以下错误:

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
  <RequestId>66CE67E2E5DA0B7B</RequestId>
  <HostId>Spfhgnlygx05eugycEy5ew4e8oSn/ccNX21Iy/6qaAxI8glXljDjgKmUPvMzRd8+NktQsNietpg=</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

我将 cloudfront CDN 中的默认资源设置为,这/index.html就是根域工作的原因,但是如何获取所有指向的 URL,/index.html以便应用程序正确路由它?

amazon-s3 amazon-web-services amazon-cloudfront

5
推荐指数
1
解决办法
3008
查看次数

具有多个基于路径的单页应用程序的 S3/Cloudfront 客户端路由

我有以下情况:

  • 具有多个基于路径的应用程序的 S3 存储桶,按版本号分组。简化示例:
/v1.0.0
  index.html
  main.js
/v1.1.0
  index.html
  main.js
Run Code Online (Sandbox Code Playgroud)
  • 每个应用程序都是一个 (React) SPA,并且需要客户端路由(通过 React 路由器)

我正在将 S3 与 Cloudfront 结合使用,并且一切正常,但客户端路由已损坏。这就是说我能够访问每个应用程序的根目录,即。https://<app>.cloudfront.net/<version>,但无法到达任何客户端路由。

我知道可以将错误文档设置为重定向到index.html,但我相信此解决方案仅在每个存储桶都有一个时才有效index.html(即,我无法为每个基于路由的路径设置错误文档)。

解决这个问题的最佳方法是什么?

amazon-s3 amazon-web-services amazon-cloudfront single-page-application react-router

5
推荐指数
1
解决办法
2218
查看次数

在S3 AWS上React应用程序SPA,同时刷新页面显示404页面

我在S3 存储桶上使用React JS制作了一个SPA,并且使用Cloud Front 通过 HTTPS 和自定义域进行工作。当我刷新页面时 - 如果我有另一个不是 BASE_URL 的路由(例如domain.com/something),S3会向我发送 404 错误。

\n

我还尝试将错误页面重定向到 BASE_URL,但它不起作用\xe2\x80\x99,它将我重定向到 S3 为我提供的 Http 默认域,并且再次给我一个 404 错误页面。

\n

我不\xe2\x80\x99t 知道是否存在另一种方法来保持 URL 不变(domain.com/page)并避免 Web 服务器(apache)处理的 404 错误。

\n

deployment amazon-s3 amazon-cloudfront single-page-application reactjs

4
推荐指数
1
解决办法
5207
查看次数

React App 部署到 Azure Web 的过程?

我目前正在尝试将默认的 React Web 应用程序部署到 Azure,但遇到了一个问题,尽管我将构建文件夹的内容部署到了 azure 托管的 /site/wwwroot 文件夹,但在转到托管地址:https://[project_name].azurewebsites.net/

登陆页面 : 在此处输入图片说明

我打算部署默认的 create-react-app 反应应用程序,以便我可以在部署我的真实站点时停止该过程。我遵循的过程几乎就是本文中提到的https://medium.com/@to_pe/deploying-create-react-app-on-microsoft-azure-c0f6686a4321

  1. 使用 create-react-app 创建默认的 React App
  2. 运行“npm run build”以获取构建文件夹
  3. 进入 Azure React 门户并创建一个新的 Web 应用程序 ***
  4. FTP/Git 将本地build文件夹的内容部署到Azure网站的/site/wwwroot/文件夹中
  5. 为了矫枉过正,我添加了下面的 web.config 文件来处理未来的路由,但也尝试过没有这一步

最后我的 Azure 站点的内容是这样的

文件夹内容: 在此处输入图片说明

此时,当我尝试访问 Azure 站点时,我收到“嘿,Node 开发人员!”的提示。这意味着我的代码未部署的页面。关于为什么会这样的任何想法?

*** 我有一种预感,在 Azure Web Api 的配置过程中,有些东西没有正确设置,这可能是因为我选择 Node 10.14 作为我的运行时堆栈,仅仅是因为这是我安装的 Node 版本,并与我的本地一起使用反应应用程序。

谢谢你们的时间。

azure reactjs react-router azure-devops

3
推荐指数
1
解决办法
2601
查看次数

重定向到 Amazon S3 静态网站中的错误页面

我有一个存储桶并在其中启用了静态网站托管。

假设我在存储桶中只有两个文件 (index.html) 和 (error.html)

如果使用 test.html 命中请求,则拒绝访问或不抛出此类关键错误。

如果出现此类错误,如何重定向到 error.html?

http amazon-s3 amazon-web-services http-headers

1
推荐指数
1
解决办法
4108
查看次数

已解决___使用 AWS S3 到 Webhost 没有给出关键错误

我正在尝试在 S3 存储桶上托管一个具有多个路径的网站。这是一个可用的选项吗?

这两个在我的本地机器上工作。

本地主机:3000

本地主机:3000/政策

尝试在 S3 上托管它没有给我任何关键错误

example.com <-- 有效

example.com/policy <-- 没有密钥错误时不起作用

确切的错误

404 未找到代码:NoSuchKey

消息:指定的密钥不存在。

关键词:政策

我应该提一下

我正在本地主机上运行的应用程序上使用 React-Router-Dom 开关

<Switch>
    <Route path="/policy"><PolicyComponent><Route>
    <Route path="/"><HomePageComponent><Route>
<Switch>
Run Code Online (Sandbox Code Playgroud)

web-hosting amazon-s3 amazon-web-services

0
推荐指数
1
解决办法
2203
查看次数