Filestack Ruby SDK
This is the official Ruby SDK for Filestack - API and content management system that makes it easy to add powerful file uploading and transformation capabilities to any web or mobile application.
Resources
Installing
Add this line to your application's Gemfile:
gem 'filestack'
And then execute:
$ bundle
Or install it yourself as:
$ gem install filestack
Usage
require 'filestack'
Intialize the client using your API key, and security if you are using it.
client = Client.new('YOUR_API_KEY', security: security_object)
Uploading
Filestack uses multipart uploading by default, which is faster for larger files. This can be turned off by passing in multipart: false
. Multipart is disabled when uploading external URLs.
filelink = client.upload(filepath: '/path/to/file')
# OR
filelink = client.upload(external_url: 'http://someurl.com')
Security
If security is enabled on your account, or if you are using certain actions that require security (delete, overwrite and certain transformations), you will need to create a security object and pass it into the client on instantiation.
security = FilestackSecurity.new('YOUR_APP_SECRET', options: {call: %w[read store pick]})
client = client.new('YOUR_API_KEY', security: security)
Using Filelinks
Filelink objects are representation of a file handle. You can download, get raw file content, delete and overwrite file handles directly. Security is required for overwrite and delete methods.
Transformations
Transforms can be initiated one of two ways. The first, by calling transform
on a filelink:
transform = filelink.transform
Or by using an external URL via the client:
transform = client.convert_external('https://someurl.com')
Transformations can be chained together as you please.
transform = filelink.transform.resize(width: 100, height: 100).flip.enhance
You can retrieve the URL of a transform object:
transform.url
Or you can store (upload) the transformation as a new filelink:
new_filelink = transform.store
For a list of valid transformations, please see here.
Tagging
If you have auto-tagging enabled onto your account, it can be called on any filelink object (tags don't work on external URLs).
= filelink.
This will return a hash with labels and their associated confidence:
{
"auto" => {
"art"=>73,
"big cats"=>79,
"carnivoran"=>80,
"cartoon"=>93,
"cat like mammal"=>92,
"fauna"=>86, "mammal"=>92,
"small to medium sized cats"=>89,
"tiger"=>92,
"vertebrate"=>90},
"user" => nil
}
SFW is called the same way, but returns a boolean value (true == safe-for-work, false == not-safe-for-work).
sfw = filelink.sfw
Versioning
Filestack Ruby SDK follows the Semantic Versioning.
Issues
If you have problems, please create a Github Issue.
Contributing
Please see CONTRIBUTING.md for details.
Credits
Thank you to all the contributors.