首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每当我试图将图像上传到S3桶时,就会得到400个错误

问每当我试图将图像上传到S3桶时,就会得到400个错误
EN

Stack Overflow用户
提问于 2017-07-31 18:27:12
回答 1查看 1.3K关注 0票数 0

嗨,

请容忍我,因为我是这方面的新手。

我试图使用将图像文件上传到S3桶,但每次尝试都会收到400个错误。我认为这可能是一个授权问题,因为我在NodeJS中找不到代码中的任何错误。上传后,我将knox客户端对象打印到控制台,并将此部分包含在其中,不确定它是否告诉我AWS没有授权我:

​

代理人:

代码语言:javascript
复制
 Agent { 
代码语言:javascript
复制
  domain: null, 
代码语言:javascript
复制
  \_events: { free: [Function] }, 
代码语言:javascript
复制
  \_eventsCount: 1, 
代码语言:javascript
复制
  \_maxListeners: undefined, 
代码语言:javascript
复制
  defaultPort: 443, 
代码语言:javascript
复制
  protocol: 'https:', 
代码语言:javascript
复制
  options: { path: null }, 
代码语言:javascript
复制
  requests: {}, 
代码语言:javascript
复制
  sockets: 
代码语言:javascript
复制
   { 'photogridjose.s3.amazonaws.com:443:::::::::': 
代码语言:javascript
复制
      [ TLSSocket { 
代码语言:javascript
复制
          \_tlsOptions: 
代码语言:javascript
复制
           { pipe: null, 
代码语言:javascript
复制
             secureContext: SecureContext { context: SecureContext {}, 

singleUse:真},

代码语言:javascript
复制
             isServer: false, 
代码语言:javascript
复制
             requestCert: true, 

* rejectUnauthorized:真,

代码语言:javascript
复制
             _session: undefined,_ 
代码语言:javascript
复制
             _NPNProtocols: undefined,_ 
代码语言:javascript
复制
             _ALPNProtocols: undefined,_ 
代码语言:javascript
复制
             _requestOCSP: undefined },_ 
代码语言:javascript
复制
          _\_secureEstablished: false,_ 
代码语言:javascript
复制
          _\_securePending: false,_ 
代码语言:javascript
复制
          _\_newSessionPending: false,_ 
代码语言:javascript
复制
          _\_controlReleased: true,_ 
代码语言:javascript
复制
          _\_SNICallback: null,_ 
代码语言:javascript
复制
          _servername: null,_ 
代码语言:javascript
复制
          _npnProtocol: null,_ 
代码语言:javascript
复制
          _alpnProtocol: null,_ 
代码语言:javascript
复制
 **authorized: false,   \*** 
代码语言:javascript
复制
          authorizationError: null, 
代码语言:javascript
复制
          encrypted: true, 
代码语言:javascript
复制
          \_events: 
代码语言:javascript
复制
           { close: 
代码语言:javascript
复制
              [ [Function], 
代码语言:javascript
复制
                { [Function: bound onceWrapper] listener: [Function] }, 
代码语言:javascript
复制
                [Function: onClose] ], 
代码语言:javascript
复制
             end: 
代码语言:javascript
复制
              [ { [Function: bound onceWrapper] listener: [Function: onend] }, 
代码语言:javascript
复制
                { [Function: bound onceWrapper] listener: [Function: onHangUp] } ], 
代码语言:javascript
复制
             finish: [Function: onSocketFinish], 
代码语言:javascript
复制
             \_socketEnd: [Function: onSocketEnd], 
代码语言:javascript
复制
             secureConnect: { [Function: bound onceWrapper] listener: [Function] }, 
代码语言:javascript
复制
             connect: { [Function: bound onceWrapper] listener: [Function] }, 
代码语言:javascript
复制
             secure: [Function], 
代码语言:javascript
复制
             free: [Function: onFree], 
代码语言:javascript
复制
             agentRemove: [Function: onRemove] }, 
代码语言:javascript
复制
          \_eventsCount: 9, 
代码语言:javascript
复制
          connecting: true, 
代码语言:javascript
复制
          \_hadError: false, 
代码语言:javascript
复制
          \_handle: 
代码语言:javascript
复制
           TLSWrap { 
代码语言:javascript
复制
             bytesRead: 0, 
代码语言:javascript
复制
             \_externalStream: [External], 
代码语言:javascript
复制
             fd: -1, 
代码语言:javascript
复制
             \_parent: 
代码语言:javascript
复制
              TCP { 
代码语言:javascript
复制
                bytesRead: 0, 
代码语言:javascript
复制
                \_externalStream: [External], 
代码语言:javascript
复制
                fd: -1, 
代码语言:javascript
复制
                reading: [Getter/Setter], 
代码语言:javascript
复制
                owner: [Circular], 
代码语言:javascript
复制
                onread: null, 
代码语言:javascript
复制
                onconnection: null, 
代码语言:javascript
复制
                writeQueueSize: 0 }, 
代码语言:javascript
复制
             \_parentWrap: undefined, 
代码语言:javascript
复制
             \_secureContext: SecureContext { context: SecureContext {}, 

singleUse:真},

代码语言:javascript
复制
             reading: false, 
代码语言:javascript
复制
             owner: [Circular], 
代码语言:javascript
复制
             onread: [Function: onread], 

​

我使用了AWS提供的AWSAccessKeyId & AWSSecretKey,并更改了S3桶的策略,因此设置为每个人读/写。

这是我的桶策略医生:

{

代码语言:javascript
复制
  "Version": "2012-10-17",
代码语言:javascript
复制
  "Id": "Policy150032\*\*\*\*\*\*\*",
代码语言:javascript
复制
  "Statement": [
代码语言:javascript
复制
      {
代码语言:javascript
复制
           "Sid": "Stmt1500\*\*\*\*\*\*\*\*\*", 
代码语言:javascript
复制
           "Effect": "Allow", 
代码语言:javascript
复制
           "Principal": "\*", 
代码语言:javascript
复制
           "Action": [ 
代码语言:javascript
复制
                "s3:GetObject", 
代码语言:javascript
复制
                "s3:PutObject", 
代码语言:javascript
复制
                "\*" 
代码语言:javascript
复制
           ],
代码语言:javascript
复制
           "Resource": "arn:aws:s3:::Myphotogrid/\*" 
代码语言:javascript
复制
       }
代码语言:javascript
复制
  ]

}

这是我的CORS文档:

代码语言:javascript
复制
  <AllowedOrigin>\* </AllowedOrigin>
代码语言:javascript
复制
  <AllowedMethod>GET </AllowedMethod>
代码语言:javascript
复制
  <AllowedMethod>POST </AllowedMethod>
代码语言:javascript
复制
  <AllowedMethod>PUT </AllowedMethod>
代码语言:javascript
复制
  <AllowedHeader>Authorization </AllowedHeader>

下面是该事务的S3桶日志:

 配件剥离

 访问被拒绝

 37329C57F01BEC29

   zYNm+4zorTHrNnmHBAYPVpFfkJJ3VL1qtJ+PI9vJPRHhCb7vGhhav4YNRlbbakRJlpyab6Gfcn0= 

这里有人有使用AWS S3桶的经验吗?

EN

回答 1

Stack Overflow用户

发布于 2017-07-31 21:47:07

创建了一个新的S3存储桶并删除了旧的存储桶,确保权限对公众来说是正确的读写存储桶,并选择了离我最近的位置的服务器来存储它,这两种方法都解决了我得到的400个错误&然后是307个错误。我现在得到了200个成功的响应,文件被上传到我的S3桶中,没有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45422853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档