代码之家  ›  专栏  ›  技术社区  ›  Zack Shapiro

将弹性Beanstalk协议更改为TCP/SSL,现在S3连接不再工作

  •  0
  • Zack Shapiro  · 技术社区  · 8 年前

    ParseLiveQuery 我注意到来自应用程序的请求不再接收图像并尝试保存,也失败了。

    请求我得到

    [错误]:响应状态代码不可接受:403(代码:1,版本:1.17.1)

    试图保存我得到的图像:

    [错误]:无法存储文件。(代码:130,版本:1.17.1) 可选(Error Domain=Parse Code=130“无法存储文件”。UserInfo={Code=130,temporary=0,Error=Could not store file.,NSLocalizedDescription=无法存储文件。})

    以下是我的端口协议设置:

    我想发布的代码

        let obj = PFObject(className: "GroupConvos")
            obj.setObject("The Picnic", forKey: "groupName")
            obj.setObject("zackshapiro created 'The Picnic'", forKey: "lastMessageText")
            obj.setObject("system", forKey: "lastMessageSender")
    
            let img = UIImage(named: "picnic")!
            let data = UIImageJPEGRepresentation(img, 0.8)!
            let file = PFFile(name: "avatar", data: data)!
    //        let file = try! PFFile(name: "avatar123456", data: data, contentType: "image/jpeg")
            file.saveInBackground { (completed, error) in
                print(error)
                if completed {
                    obj.setObject(file, forKey: "groupImage")
                    obj.saveInBackground(block: { (completed, error) in
                        if completed {
                            print("done")
    
    
                        }
                    })
                }
            }
    

    index.js中的s3适配器代码没有更改

    var S3Adapter = require('parse-server').S3Adapter;
    var s3Adapter = new S3Adapter(
        "my bucket",
        { directAccess: true,
          baseUrl: 'http://someURL1234.cloudfront.net'
        }
    );
    

    然后我把它插到我的 ParseServer

    知道这里发生了什么吗?该问题在生产环境中并不存在,因为生产环境中的协议仍然是HTTP(80)和HTTPS(443)

    谢谢

    1 回复  |  直到 8 年前
        1
  •  1
  •   John Hanley    8 年前

    您的问题是由于对HTTPS(SSL)通信和HTTP通信使用相同的端口80引起的。您需要在后端设置HTTPS和SSL证书。

    当您在负载平衡器中启用TCP侦听器(第4层侦听器)时,LB只是将连接直接传递到后端。这也意味着SSL证书将不会在LB(用于TCP侦听器)上使用,而是必须在后端服务器上设置。

    推荐文章