This package makes it easy to use AWS resources from Swift.
Update your Package.swift
file.
.Package(url: "https://github.com/nodes-vapor/aws.git", majorVersion: 1)
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.
Describe instances
do {
let instances = try EC2(
accessKey: "my-key",
secretKey: "my-secret",
region: "my-region"
).describeInstances()
} catch {
}
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 {
}
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 {
}
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
This package is developed and maintained by the Vapor team at Nodes. The package owner for this project is Brett.
This package is open-sourced software licensed under the MIT license