Skip to content
This repository has been archived by the owner on Apr 20, 2024. It is now read-only.

ml-archive/aws

Repository files navigation

AWS

Swift Version Vapor Version Circle CI codebeat badge codecov Readme Score GitHub license

This package makes it easy to use AWS resources from Swift.

📦 Installation

Update your Package.swift file.

.Package(url: "https://github.com/nodes-vapor/aws.git", majorVersion: 1)

Getting started 🚀

Currently the following AWS Services are available:

  • EC2
  • S3

If you need other resources you can use Raw call, to call the AWS API directly.

EC2

Describe instances

do {
    let instances = try EC2(
        accessKey: "my-key", 
        secretKey: "my-secret", 
        region: "my-region"
    ).describeInstances()
} catch {

}

S3

Upload a file to S3

do {
    try S3(
        accessKey: "my-key", 
        secretKey: "my-secret", 
        region: "my-region", 
        bucket: "my-s3-bucket"
    ).uploadFile("/path/to/local/file", "/folder/in/s3/bucket")
} catch {

}

Raw call

If you need a resource not made in one of the functions, you can use the system to call the AWS API directly.

Describe instances example

do {
    return try CallAWS().call(
        method: "GET", 
        service: "ec2", 
        host: "ec2.amazonaws.com", 
        region: "my-region", 
        baseURL: "https://ec2.amazonaws.com", 
        key: "my-key", 
        secret: "my-secret", 
        requestParam: "Action=DescribeInstances"
    )
} catch {

}

📃 Development

If you want to improve this, you'll need to make sure you're making a copy of OpenSSL available to swift build and the toolchain. If you use Xcode, something like the following after brew install openssl will work:

swift package -Xswiftc -I/usr/local/Cellar/openssl/1.0.2j/include -Xlinker -L/usr/local/Cellar/openssl/1.0.2j/lib/ generate-xcodeproj

🏆 Credits

This package is developed and maintained by the Vapor team at Nodes. The package owner for this project is Brett.

📄 License

This package is open-sourced software licensed under the MIT license