Skip to content

Instantly share code, notes, and snippets.

@maimai-swap
Created July 2, 2013 03:51
Show Gist options
  • Save maimai-swap/5906667 to your computer and use it in GitHub Desktop.
Save maimai-swap/5906667 to your computer and use it in GitHub Desktop.
aws s3 file upload upload_file.rb の XXXXXX に自分のバケット名を入れる。config.yml に access_key_id:secret_access_key: を入れる。これは、https://console.aws.amazon.com/iam/home?#usersから取得できるはず。 ruby upload_file.rb /Users/maimai-swap/tmp/userdic.csv ってやったら bucket 直下に userdic.csvのファイルがアップロードされる。
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
require 'rubygems'
require 'yaml'
require 'aws-sdk'
config_file = File.join(File.dirname(__FILE__),
"config.yml")
unless File.exist?(config_file)
puts <<END
To run the samples, put your credentials in config.yml as follows:
access_key_id: YOUR_ACCESS_KEY_ID
secret_access_key: YOUR_SECRET_ACCESS_KEY
END
exit 1
end
config = YAML.load(File.read(config_file))
unless config.kind_of?(Hash)
puts <<END
config.yml is formatted incorrectly. Please use the following format:
access_key_id: YOUR_ACCESS_KEY_ID
secret_access_key: YOUR_SECRET_ACCESS_KEY
END
exit 1
end
AWS.config(config)
# get key from https://console.aws.amazon.com/iam/home?#users
access_key_id:
secret_access_key:
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
require File.expand_path(File.dirname(__FILE__) + '/config')
file_name = ARGV[0]
unless file_name
puts "Usage: upload_file.rb <FILE_NAME>"
exit 1
end
# get an instance of the S3 interface using the default configuration
s3 = AWS::S3.new
# get a bucket object
# change XXXXXXXXXXXXXXXX to your bucket name.
b = s3.buckets['XXXXXXXXXXXXXXXX']
# upload a file
basename = File.basename(file_name)
o = b.objects[basename]
o.write(:file => file_name)
puts "Uploaded #{file_name} to:"
puts o.public_url
# generate a presigned URL
puts "\nUse this URL to download the file:"
puts o.url_for(:read)
#puts "(press any key to delete the object)"
#$stdin.getc
#o.delete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment