问题标签 [soto]

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 回答
92 浏览

android - 如何使用 SOTO 在 iOS 上调用 AWS Web 服务(API 网关)?

在我的 iOS 项目中,我需要实现 AWS SDK,就像我在该项目的 Android 版本中成功完成的那样,如果可能的话,使用 Swift Package Manager 而不是 Cocoapods。

由于 SPM 似乎尚不可用,因此我尝试了Soto,它允许我使用 SPM 实现 AWS 开发工具包。

这是我在我的 Android 项目中所做的,我想在 iOS 上复制:

  • 我创建了一个AWSInterface接口,我所有的 api 端点都是:
  • 这是ApiDemoModel非常简单的:
  • 我创建了一个AWSInterfaceHolder类,所以我可以调用 api:
  • 我初始化AWSMobileClient,并调用我的 api:

如果可能的话,如何使用Soto为我的 iOS Swift 项目做同样的事情,因为默认的 AWS 开发工具包还不能用于 SPM?

谢谢。

0 投票
1 回答
119 浏览

ios - 使用 soto-cognito-authentication-kit

我需要使用 AWS Cognito 实施本机身份验证,并且我正在尝试在我的 iOS 应用程序(客户端)中使用https://github.com/adam-fowler/soto-cognito-authentication-kit 。

我正在努力使用该CognitoAuthenticatable对象来启动用户名/密码身份验证。

这是我的代码:

authenticate方法应该返回EventLoopFuture<CognitoAuthenticateResponse>

  1. 如何处理authenticate方法的响应?我收到错误Generic parameter 'NewValue' could not be inferred
  2. 如何构造CognitoContextData对象。我只想使用 AWS 服务器位置的默认值。
0 投票
1 回答
97 浏览

swift - 在 Swift SOTO 中使用 AWS Rekognition

我已将devhr python lambda 函数用作我的 Swift Lambda 函数的模型,该函数使用Soto for AWS。当图像上传到 S3 时,Lambda 函数将由 S3 事件触发,并使用 AWS Rekognition 服务将标签(图像中对象的描述)添加到 DynamoDB 数据库。我在使rekFunction函数正确时遇到问题,我希望有人可以建议如何使它工作。

到目前为止我制作的 Swift 代码:

0 投票
2 回答
455 浏览

swift - 如何在不复制的情况下将“数据”对象放入 Swift-NIO?

我对 Swift陌生,对 NIO 也很陌生。

我正在将 Swift 代码添加到需要将大量数据 (GB) 上传/下载到 AWS 的大型项目中。为此,我导入了严重依赖 NIO的 GitHub 项目Soto 。

大多数发送/接收数据的方法都是通过ByteBuffer结构来完成的。我的应用程序已经有数据要上传到 FoundationData对象中。我很难找出将这些Data对象放入 NIO 的最佳方法。

NIO ByteBuffer(2.26.0)的文档中,它指出

支持的类型:可以从 ByteBuffer 读取/写入多种类型。...开箱即用,ByteBuffer 支持例如以下类型(非详尽列表):

  • 字符串/静态字符串
  • Swift 的各种(无符号)整数类型
  • 基金会资料
  • [UInt8] 通常是 UInt8 的任何集合

但是,最新的 swift-nil 包不ByteBuffer支持 FoundationData对象。相反,它支持DispatchData对象,而对象又似乎与对象没有互操作性Data

我要避免的是复制每个数据块(一次 100 MB),只是为了在DataDispatchData类型之间进行转换。

所以...

现在我的想法是其中之一

  • 我完全迷路了,我还没有找到一个简单的解决方案

  • 解决方案是创建一个由对象DispatchData支持的子类Data

  • 使用指向对象中原始字节数组的非复制初始化器创建的ByteBuffer结构,以及一个简单地保留对象直到和对象被销毁的自定义释放器。DispatchDataDataDataByteBufferDispatchData

我将不胜感激任何想法、经验或建议(特别是如果它是选项#1)。

0 投票
1 回答
156 浏览

ios - AsyncHTTPClient 请求不起作用(Swift iOS)

全新的 Swift 和 iOS 开发(本周末开始学习)。

我正在尝试制作一个通用的 HTTP 客户端包装器,用于使用 和 对 API Gateway (AWS) 进行签名和发送SotoSignerV4请求AsyncHTTPClient。我遵循了一个很好的指南来获得一些关于如何实现这一点的样板想法,但是当我在单元测试(XCTestCase)中测试这种方法时,它根本没有按预期工作。似乎请求甚至没有执行(事实上我知道它没有执行,因为我可以检查我的 Lambda 应用程序上的日志 - 请求没有到达 lambda)。

这是我的大部分代码:

失败在entity分配线上,说明,

它无法解包的可选选项是响应字符串,这意味着.success案例中的代码从未被命中。我也尝试通过捕获表示错误的字符串来测试错误情况,但即使这样也不起作用。就好像与关联的回调 whenComplete被完全跳过,请求永远不会被发出。我也尝试过使用URLSession.shared.dataTask,结果相同 - 没有提出任何请求。

请帮忙!我在做什么错HTTPClient

0 投票
1 回答
50 浏览

macos - 无法与非 AWS 服务通话

我已经使用 Swift soto包成功实现了一个 Amazon Web Service S3 存储应用程序。

我这样创建S3服务对象:

使用 AWS 时,awsConfiguration.region是 AWS 的标准区域名称之一(在本例中为"us-west-2"),并且.endpointnil(它告诉 soto 使用标准的“amazonaws.com”域)。

一切都很好。

我现在想重用此代码与模拟 AWS S3 API 的非 AWS 提供商(从 BackBlaze 开始)进行通信。我的理解是,您只需在服务对象创建期间更改端点和区域。

我有一个awsConfiguration对象的子类,它只是具有不同的region( "us-west-000") 和endpoint( "backblazeb2.com") 属性值,但它不起作用。

当代码运行时,它无法获取存储桶中的对象列表,返回错误:“无法读取存储桶内容”

为了调试它,我运行了 Fiddler Everywhere 来监控从我的机器发送的 HTTP 请求。当我运行 AWS 版本时,我看到两个 HTTPS 请求:http://qr3dev1.s3.us-west-2.amazonaws.com:443https://qr3dev1.s3.us-west-2.amazonaws.com/?list-type=2,它们都成功了。

但是当我将区域和端点更改为 BackBlaze 时,代码什么也不做。Soto 从不发送任何 HTTP 请求。代码只是返回错误。

有没有人遇到过这种情况,知道如何调试它,或者知道让 soto 与非 AWS 服务通信的秘密?