| bin | ||
| gemfiles | ||
| lib | ||
| tests | ||
| .gitignore | ||
| .travis.yml | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| CONTRIBUTORS.md | ||
| fog-aws.gemspec | ||
| Gemfile | ||
| LICENSE.md | ||
| Rakefile | ||
| README.md | ||
| stale.yml | ||
Fog::Aws
Installation
Add this line to your application's Gemfile:
gem 'fog-aws'
And then execute:
$ bundle
Or install it yourself as:
$ gem install fog-aws
Usage
Before you can use fog-aws, you must require it in your application:
require 'fog/aws'
Since it's a bad practice to have your credentials in source code, you should load them from default fog configuration file: ~/.fog. This file could look like this:
default:
  aws_access_key_id:     <YOUR_ACCESS_KEY_ID>
  aws_secret_access_key: <YOUR_SECRET_ACCESS_KEY>
EC2
Connecting to the EC2 Service:
ec2 = Fog::Compute.new :provider => 'AWS', :region => 'us-west-2'
You can review all the requests available with this service using #requests method:
ec2.requests # => [:allocate_address, :assign_private_ip_addresses, :associate_address, ...]
Launch an EC2 on-demand instance:
response = ec2.run_instances(
  "ami-23ebb513",
  1,
  1,
  "InstanceType"  => "t1.micro",
  "SecurityGroup" => "ssh",
  "KeyName"       => "miguel"
)
instance_id = response.body["instancesSet"].first["instanceId"] # => "i-02db5af4"
instance = ec2.servers.get(instance_id)
instance.wait_for { ready? }
puts instance.public_ip_address # => "356.300.501.20"
Terminate an EC2 instance:
instance = ec2.servers.get("i-02db5af4")
instance.destroy
Fog::AWS is more than EC2 since it supports many services provided by AWS. The best way to learn and to know about how many services are supported is to take a look at the source code. To review the tests directory and to play with the library in bin/console can be very helpful resources as well.
S3
Connecting to the S3 Service:
s3 = Fog::Storage.new(provider: 'AWS', region: 'eu-central-1')
Creating a file:
directory = s3.directories.new(key: 'gaudi-portal-dev')
file = directory.files.create(key: 'user/1/Gemfile', body: File.open('Gemfile'), tags: 'Org-Id=1&Service-Name=My-Service')
Listing files:
directory = s3.directories.get('gaudi-portal-dev', prefix: 'user/1/')
directory.files
Generating a URL for a file:
directory.files.new(key: 'user/1/Gemfile').url(Time.now + 60)
Documentation
See the online documentation for a complete API reference.
Development
After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
Contributing
- Fork it ( https://github.com/fog/fog-aws/fork )
 - 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 a new Pull Request