AWS Extras

用于 Swift AWS SDK 的便捷助手工具。

📱 要求

使用 Swift Package Manager 的 Swift 5.9 工具链。

🖥 安装

AWS Extras 通过 Swift Package Manager 分发。要将其安装到项目中,请将其作为依赖项添加到您的 Package.swift 清单文件中

dependencies: [
    .package(url: "https://github.com/Mobelux/swift-aws-extras.git", from: "0.1.0")
]

然后,将相关产品添加到任何需要访问该库的目标中

.product(name: "<product>", package: "swift-aws-extras"),

其中 <product> 是以下之一

⚙️ 用法

📧 EmailSender

初始化一个 EmailSender

let sender = try await EmailSenderFactory.live().make()

发送纯文本正文的电子邮件

let messageID = try await sender.send(
    ["recipient@mail.com"],
    "sender@mail.com",
    "Subject",
    .text("Plain text email content")
)

发送包含纯文本和 HTML 的电子邮件

let messageID = try await sender.send(
    ["recipient@mail.com"],
    "sender@mail.com",
    "Subject",
    .combined("Plain text email content", "<!doctype html>\n<html>...</html>")
)

🗄️ Persistence

AttributeValueConvertible 一致性添加到模型类型

struct MyModel: Codable {
    let name: String
    let value: Int
}

extension MyModel: AttributeValueConvertible {
    var attributes: [String: AttributeValue] {
        [
            CodingKeys.name: .s(name),
            CodingKeys.value: .n(String(value))
        ].attributeValues()
    }
}

初始化 Persistence

let persistence = try await PersistenceFactory.make(
    "us-east-1",
    "TableName)

持久化模型实例

let model = MyModel(name: "foo", value: 42)
try await persistence.put(model)

🗝️ Secrets

使用区域初始化 Secrets

let secrets = Secrets.live(region: "us-east-1")

通过其 ID 检索密钥字符串

let secret = try await secrets.string("my-secret-id")

通过其 ID 检索密钥数据

let secret = try await secrets.data("my-secret-id")

检索多个密钥

let secrets = try await secrets.batch([
    "my-secret-id",
    "my-other-secret-id"
])