问题标签 [aws-sdk-ios]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1379 浏览

swift - 具有标识符的后台 URLSession 已存在

我有一个 S3Service,它是一个管理所有与 S3 相关的上传和下载的单例。当我上传第一张图片时,它工作正常,但如果我尝试连续上传一张图片,它会给我这个警告,并且永远不会调用完成块。

具有标识符的后台 URLSessioncom.amazonaws.AWSS3TransferUtility.Identifier.TransferManager已存在。

这就是我上传方法的样子:

0 投票
0 回答
86 浏览

python - Python Lambda响应在swift应用程序上超时,但该函数运行没有问题

我有一个用 python 编写的 lambda 函数,它使用 iOS 应用程序提供的数据运行信号处理算法。

iOS 应用程序成功调用该函数,但一段时间后出现超时错误:

会话任务失败并出现错误:错误域=NSURLErrorDomain 代码=-1001“请求超时。” UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x282711350 {错误域=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<6>, _NSURLErrorRelatedURLSessionTaskError=( "LocalDataTask .<6>" ), NSLocalizedDescription=请求超时。, NSErrorFailingURLStringKey= https://mylambdaURL/invocations , NSErrorFailingURLKey= https://mylambdaURL/invocations , _kCFStreamErrorDomainKey=4}

我像这样调用函数:

但是,Lambda 函数的日志没有显示任何错误,该函数成功运行,甚至可以毫无问题地写入 dynamoDB 表。所以 Lambda 没有超时,但是,该函数运行了大约 60 秒。

调用 lambda 的时间大约有一半会发生此错误。

有任何想法吗?

编辑:

我尝试为在 appDelegate 中执行此操作的请求增加 NSURLSession 超时:

但我仍然得到超时并且 lambda 函数的最大运行时间是 70 秒,所以我想我并没有真正设置正确的 timeoutIntervalForRequest

0 投票
1 回答
1139 浏览

swift - AWS Amplify / iOS SDK 教程缺少步骤

我正在按照此入门指南使用 AWS Amplify CLI 和适用于 iOS 的 AWS 开发工具包构建 iOS 应用程序。

我之前已经按照这个 Apple 入门指南中的步骤简单地创建了单视图应用程序的基本框架。

一切顺利:在开始 AWS iOS SDK Swift 教程之前和之后,我都能够在 Xcode 中构建我的空项目,启动模拟器,查看我的白色空白屏幕。

我的问题是 AWS 教程假定的 Swift 知识比我拥有的更多。因此,当它在结尾处说以下内容时-

从您的应用代码中调用 runMutation()、runQuery() 和 subscribe() 方法,例如通过单击按钮或当您的应用在 viewDidLoad() 中启动时。

——该指南基本上跳过了一些步骤。

我已经为本教程创建了所需的 AWS 资源,但我不知道如何调用这些函数并更新设置的 DynamoDB 表。

假设我可以向 UI 视图添加两个文本字段(一个用于 ToDo 的“名称”,一个用于“描述”)并将一个按钮绑定到它们,有人可以帮我完成剩下的工作吗?

更新 回答如下。问这个问题我收到了反对票,但有人可能会争辩说,入门指南应该是独立的。没什么大不了的;我完成了两个教程并解决了我的问题,并为那些像我一样困惑的人发布了答案。

0 投票
1 回答
581 浏览

swift - 将 REST API 添加到 Swift 项目后的 AWS Amplify iOS SDK 问题

将 AWS Amplify iOS SDK REST API 添加到我的项目后,我遇到了问题。由于一个 Amplify 添加的文件(文件夹下的 *Client.swift)中有 3 个致命的编译器错误,我无法构建我的项目generated-src,我不知道该怎么处理它们。

在利用 Drop-in UI 进行身份验证后,我的 iOS 应用程序一切顺利:我能够通过我预先存在的 Amazon Cognito 用户池登录。所以,事情进展顺利。

下一步,我想访问一个预先存在的 DynamoDB 表。似乎在 Amplify 上下文中执行此操作的方法是添加 REST API。

按照上面链接中的步骤,我知道 Amplify 通过创建自己的Cognito 用户池正在做我不希望它做的事情;我猜是因为我指定我想对经过身份验证的用户“限制 API 访问”。我所期望的是,我会根据我已经存在的Cognito 用户池而不是新的用户池来限制访问。

无论如何,这不是我眼前的问题。

发出 pod install --repo-update 命令后,我将新generated-src文件夹添加到我的项目中。我觉得奇怪的是我awsconfiguration.json的没有改变。那时,按照指示,我尝试构建项目,但由于这 3 个错误而无法这样做。

我无法进入下一步(认为这可能是导致这些错误的原因),因为我的项目的 Build Settings 选项卡没有显示 Objective-C Bridging Header 类别。(是的,我想?直到建成?)

有人可以帮我吗?

0 投票
1 回答
125 浏览

ios - 使用 aws-sdk-ios 设置 aws-lex 请求属性

有没有办法使用 iOS SDK 设置请求属性?我在安卓上使用这个:

但我在 iOS 中找不到等价物。是否有另一种方法可以向 iOS 中的请求添加请求属性?

0 投票
1 回答
188 浏览

amazon-web-services - AWS IoT Core 和移动 SDK - 缓存容量和缓存控制?

AWS IoT SDK for Things or for Mobile (Android/iOS) 如何在网络不存在或设备(Thing/Mobile)未连接到 Internet 时存储数据以供稍后同步。在 AWS IoT SDK 和云之间进行通信时,是否存在 Storage Manager 和 Sync Manager 概念,因为在设备未连接到 Internet 时似乎需要它?如果有,那么这种存储的限制是多少?

已经经历了 Persistence Sessions 的概念。

0 投票
0 回答
138 浏览

swift - 如何使用 AWSMobileClient 向 Amazon Cognito 进行身份验证?

问题:我在 Cognito 中有两个用户池。让我们称它们为池 A 和 B。我能够成功地对“池 A”的用户进行身份验证。

我需要从客户端动态验证后端创建的用户到“池 B”。

我读过的文档:* Amazon Amplify * Amazon Cognito * 适用于 iOS 的 Amazon SDK * AWSMobileClient

我的设置:* AWSMobileClient v2.9.8

我尝试了以下解决方案:

  • awsconfiguration.json 包含有关“池 A”的信息
  • 我将用户登录到“池 A”并执行业务逻辑(成功)
  • 我全局注销用户并使令牌无效。(成功)
  • 我从代码中为“池 B”设置了配置,我不确定如何在 awsconfiguration.json 中指定多个用户池。不确定是否可行。
  • 我登录由“池 B”中存在的后端创建的用户。(失败并显示错误消息“无法登录用户”)

AWSMobileClient.sharedInstance().signIn( username: "user_present_in_pool_a", password: "password" ) { 结果,错误

AWSMobileClient.Error("无法让最终用户登录")

0 投票
1 回答
138 浏览

ios - AWS Transcribe 卡在 iOS 中的 getTranscriptionJob 中

我正在尝试使用 aws-sdk-ios 在 iOS 应用程序中使用 AWS Transcribe。该应用程序启动一个转录作业,我可以在 AWS 控制台上看到该作业。但是该应用程序无法列出作业或获取特定作业,因为它卡在对getTranscriptionJobor的请求中listTranscriptionJobs,因为这些请求永远不会完成(我在完成块中添加了一个打印语句和一个断点,它从不打印,也没有到达断点)。

我向 GitHub 上传了一个演示问题的示例单视图应用程序。您需要一个对 S3 和 Transcribe 具有完全权限的 AWS 账户或 IAM 用户。ViewController.swift在适当的变量中插入该账户的密钥和 S3 存储桶。

https://github.com/joaomarceloods/AWSTranscribeBug

我需要帮助。这是一个错误,还是我做错了什么?

斯威夫特,iOS 13.2,CocoaPods,AWSCore 2.12.1,AWSTranscribe 2.12.1

最重要的片段:

0 投票
1 回答
594 浏览

javascript - AWS IOT 错误:在 onclosenexttick 过早关闭

我正在尝试构建一个基本的 AWS IOT Javascript 应用程序,下面是源代码

在运行这个项目时,我遇到了错误

有人可以解决这个问题,提前谢谢。

0 投票
0 回答
199 浏览

ios - 在 iOS 上的 Cognito 中,处理所需的新密码永远不会达到 didCompleteNewPasswordStepWithError

我正在尝试在使用 AWS Cognito 的 iOS 应用程序上实现响应 FORCE_CHANGE_PASSWORD 的功能。我使用了这个 Stack Overflow 问题,它引用了这个示例代码。现在,我的代码打开了一个视图控制器,就像它应该的那样;但是,一旦在该视图控制器上,我就无法让它做任何事情。在示例代码中,似乎当您想提交.set对 的实例调用的密码更改请求AWSTaskCompletionSource<AWSCognitoIdentityNewPasswordRequiredDetails>时,但是当我这样做时,didCompleteNewPasswordStepWithError永远不会调用协议函数。有趣的是,另一个协议函数getNewPasswordDetails在之后很快被调用viewDidLoad,我不知道为什么。我相信在用户输入新密码等之前不应该调用它,并且应该响应.set但我可能是错的。

我的代码与示例代码和 SO 帖子完全相同,所以我不确定这里出了什么问题。

我的相关 AppDelegate 代码在这里:

我相关的 ResetPasswordViewController 代码在这里:

非常感谢您提前提供的帮助,如果您需要更多信息,请告诉我。