Ruby Egnyte
Mainted by: Attachments.me
A feature-rich Ruby client for Egnyte Version 1 API.
Authentication
- Create a session object with your Egnyte API Key
- Create an authorize url and direct a user to it, to retrieve an access_token for their account.
require 'egnyte'
session = Egnyte::Session.new({
key: 'api_key',
domain: 'egnyte_domain'
})
session.('https://127.0.0.1/oauth2callback')
# direct the user to the authorize URL generated,
# the callback provided will be executed with an access token.
session.create_access_token('the_access_token_returned')
- Create a client, with the authenticated session.
@client = Egnyte::Client.new(session)
The client initialized, we can start interacting with the Egnyte API.
Folders
- Fetching a folder
folder = @client.folder('/Shared')
p folder.name # outputs 'Shared'.
- Listing files in a folder.
@client.folder('/Shared/Documents/').files.each {|f| p f.name}
# outputs "IMG_0440.JPG", "IMG_0431.JPG"
- Creating a folder.
new_folder = @client.folder('/Shared/Documents/').create('banana')
p new_folder.path # a new folder was created /Shared/Documents/banana
- Deleting a folder.
folder = @client.folder('/Shared/Documents/banana')
folder.delete
Files
- Fetching a file
file = @client.file('/Shared/example.txt')
p file.name # example.txt.
- Deleting a file.
@client.file('/Shared/example.txt').delete
- Uploading a file.
local_path = "./LICENSE.txt"
filename = "LICENSE.txt"
folder = @client.folder('Shared/Documents/')
File.open( local_path ) do |data|
folder.upload(filename, data)
end
- Downloading a file.
file = @client.file('/Shared/Documents/LICENSE.txt')
file.download
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request