GoogleCloudStorageAPI
March 13, 2020 ยท View on GitHub
Getting Started
If you only need to use the Google Cloud Storage API, then this guide will help you get started.
In your Package.swift file, make sure you have the following dependencies and targets
dependencies: [
//...
.package(url: "https://github.com/vapor-community/google-cloud.git", from: "1.0.0-rc"),
],
targets: [
.target(name: "MyAppName", dependencies: [
//...
.product(name: "CloudStorage", package: "google-cloud"),
]),
]
Now you can setup the configuration for any GCP API globally via Application.
In configure.swift
import CloudStorage
app.googleCloud.credentials = try GoogleCloudCredentialsConfiguration(projectId: "myprojectid-12345",
credentialsFile: "~/path/to/service-account.json")
Next we setup the CloudStorage API configuration (specific to this API).
app.googleCloud.storage.configuration = .default()
Now we can start using the GoogleCloudStorage API
There's a handy extension on Request that you can use to get access to a cloud storage client via a property named gcs.
struct UploadRequest: Content {
var data: Data
var filename: String
}
func uploadImage(_ req: Request) throws {
let upload = try req.content.decode(UploadRequest.self)
req.gcs.object.createSimpleUpload(bucket: "vapor-cloud-storage-demo",
data: upload.data,
name: upload.filename,
contentType: "image/jpeg").flatMap { uploadedObject in
print(uploadedObject.mediaLink) // prints the download link for the image.
}
}