标签: amazon-javascript-sdk

AWS Cognito无效的标识池配置

我正在使用AWS Javascript API并尝试获取指定的cognito id:

AWS.config.credentials.get(function(err) {
    if (!err) {
        console.log("Cognito Identity Id: " + AWS.config.credentials.identityId);
    }
});
Run Code Online (Sandbox Code Playgroud)

为什么这会导致下面的消息出现400错误?

{"__type":"InvalidIdentityPoolConfigurationException","message":"Invalid identity pool configuration. Check assigned IAM roles for this pool."}
Run Code Online (Sandbox Code Playgroud)

我为经过身份验证和未经身份验证的用户配置了IAM角色.

{
"Version": "2012-10-17",
"Statement": [{
    "Action": [
        "mobileanalytics:PutEvents",
        "cognito-sync:*"
    ],
    "Effect": "Allow",
    "Resource": [
        "*"
    ]
}]
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-javascript-sdk amazon-cognito

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

附加到S3 ObjectCreated事件的AWS Lambda返回"NoSuchKey:指定的密钥不存在:

我通过此代码将文件从Android设备上传到S3存储桶

TransferUtility trasnferManager = new TransferUtility(s3, context);
trasnferManager.upload(..,..,..);
Run Code Online (Sandbox Code Playgroud)

之后我将一个lambda触发器附加到S3:ObjectCreated事件.

执行lambda时,我试图通过S3.getObject()函数获取文件.不幸的是,有时我收到" NoSuchKey:指定的密钥不存在: "错误.在此之后,lambda重试几次并成功获取文件并继续执行.

在我看来lambda函数是在S3中的文件可以使用之前执行的吗?但这不应该在设计上发生.S3上的文件上传完成后,应触发触发器.

根据20158月4日的公告:

所有Regions中的 Amazon S3存储桶为新对象的PUTS 提供了读写后一致性,并为覆盖PUTS和DELETES提供了最终一致性.

写入后读取一致性允许您在Amazon S3中创建后立即检索对象.

但在此之前:

美国标准(更名为美国东部(弗吉尼亚北部))之外的所有地区都支持 上传到Amazon S3的新对象的读写后一致性.

我的水桶在美国东部(弗吉尼亚北部)地区,它是在2015年8月4日之前创建的 .我不知道这可能是问题......

编辑:20.10.2016

根据文档 - EVENTUALLY CONSISTENT READ操作可能会返回NO RESULT,即使之前已完成两个或更多WRITE操作.

在此示例中,W1(写入1)和W2(写入2)都在R1(读取1)和R2(读取2)开始之前完成.对于一致读取,R1和R2都返回color = ruby​​.对于最终一致的读取,R1和R2可能返回color = red,color = ruby​​,或者没有结果,具体取决于已经过的时间量.

一致的例子

amazon-s3 amazon-javascript-sdk aws-sdk aws-lambda

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

使用浏览器 JavaScript SDK 检查 AWS S3 上是否存在文件?

我最近更改了作业文件夹中文件的命名约定。由于我需要在用户尝试下载特定文件时同时支持新命名约定和旧命名约定,因此我需要检查新命名标准 URL 是否存在,如果不存在,则从旧命名标准 URL 下载。

有没有办法“ping”一个 S3 URL 以查看 URL 中是否存储了有效文件?由于跨域问题,标准 AJAX 调用不起作用。

我正在检查的文件是二进制文件。

javascript amazon-s3 amazon-web-services amazon-javascript-sdk

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

用户池和联合身份

我正在尝试使用AWS Javascript sdk为Web应用程序提供登录功能.

我设置了Cognito用户池,并且帐户正确注册,验证和登录.

身份池中正在创建身份,但我现在想添加允许我使用我的Google帐户(或facebook,twitter等)授权的功能,并将该授权链接到身份池中的相同身份.

我在文档中找不到任何允许我这样做的方法.

我预计这将允许我的用户使用Google或用户名/密码登录,但我找不到有关如何链接这些授权的任何指导.

此外,是否有一种方法可以在联合身份登录后创建用户池帐户,如果这是用户的初始联系点(例如:点击"登录Facebook",以前他们从未去过).

任何指导将不胜感激.

最好的祝福,

哈尔

amazon-web-services amazon-javascript-sdk amazon-cognito

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

AWS S3 Javascript SDK重新发送请求失败

我正在使用AWS S3 Javascript sdk通过我的浏览器将文件上传到我的S3存储桶.我通过正常的多部分上传来获取文件或上传小型甚至是大型文件都没有问题.

我遇到的问题是在上传一个巨大的文件时丢失了我的连接.返回连接后,重新发送请求以查找要上载的其余部分但失败.

我附上了失败请求的屏幕截图

在此输入图像描述

有什么理由失败,或者任何方式可以处理/解决?

javascript file-upload amazon-s3 amazon-web-services amazon-javascript-sdk

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