Swiftpack.co - skelpo/Storage as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by skelpo.
skelpo/Storage 1.0.0
An interface for storing files with any API.
⭐️ 7
🕓 4 years ago
.package(url: "https://github.com/skelpo/Storage.git", from: "1.0.0")

Storage

Storage is a generic interface for resource storing APIs, such as Google Cloud Storage, Amazon S3, or your local file system.

Installing

Add a package instance to your manifest's dependencies array with the latest version:

.package(url: "https://github.com/skelpo/Storage.git", from: "0.1.0")

Then run swift package update and regenerate your Xcode project if you have one.

API

Storage

The Storage package is built around the Storage protocol which defines a type that can create, read, update, and delete files.

It requires 4 methods:

  • func store(file: File, at path: String?) -> EventLoopFuture<String>
  • func fetch(file: String) -> EventLoopFuture<File>
  • func write(file: String, with data: Data) -> EventLoopFuture<File>
  • func delete(file: String) -> EventLoopFuture<Void>

File

A Swift type that represents file with a name String and the contents as ByteBuffer.

StorageError

If any error occurs in the Storage methods, a StorageError is returned in the future. Use this error if you create your own Storage implementation.

LocalStorage

A Storage implementation for interacting with files in your local file system. The store and fetch methods stream the file data, while the delete and write methods are run on the instance's event loop.

Documentation

You can see the API documentation here.

License

This package is registered under the MIT license agreement.

GitHub

link
Stars: 7
Last commit: 4 years ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Dependencies

Release Notes

v0.1.2
4 years ago

Allow Whitespace in Write File Paths

  • https://github.com/skelpo/Storage/issues/5. The implementation for the LocalStorage.write(file:data:options:) method would throw an error if the path passed in had whitespace in it. The issue was fixed by using the URL(fileURLWithPath:) initializer.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics