Skip to content

Instantly share code, notes, and snippets.

@PositiveControl
Created June 3, 2015 04:03
Show Gist options
  • Save PositiveControl/2e3352907986c9186407 to your computer and use it in GitHub Desktop.
Save PositiveControl/2e3352907986c9186407 to your computer and use it in GitHub Desktop.
Stage one... get RAX file URLs
require "fog"
require "pry"
class RaxUserFileSet
def initialize(limit = nil)
conn = Fog::Storage.new({
:provider => "Rackspace",
:rackspace_username => RAX_UN,
:rackspace_api_key => RAX_API_KEY,
:rackspace_region => :dfw
})
@dir = conn.directories.get "teamsnap_production"
@rax_array = []
@limit = limit || 10_000
end
def retrieve(last_file = nil)
loop do
urls = get_user_file_urls(@limit, last_file)
@rax_array << urls
@rax_array.flatten!
last_file = @rax_array.last.split(/rackcdn.com\//).last
break if urls.count < @limit
end
@rax_array.to_set
end
private
def get_user_file_urls(limit, last_file = nil)
@dir.files.all(
:limit => limit,
:marker => last_file || nil,
:prefix => "user_files/")
.map(&:public_url)
end
end
@PositiveControl
Copy link
Author

Returns a Set or URLs for later comparison against UserFiles table URL Set.

Example:

#<Set: {"http://49f9ffaf92d711fb5ea1-1b8897185d70b198c119e1d2b7efd8a2.r30.cf1.rackcdn.com/user_files/1/mid
size/ward_icon.jpg", "http://49f9ffaf92d711fb5ea1-1b8897185d70b198c119e1d2b7efd8a2.r30.cf1.rackcdn.com/user_f
iles/1/original/ward_icon.jpg", "http://49f9ffaf92d711fb5ea1-1b8897185d70b198c119e1d2b7efd8a2.r30.cf1.rackcdn
.com/user_files/1/thumb/ward_icon.jpg", "http://49f9ffaf92d711fb5ea1-1b8897185d70b198c119e1d2b7efd8a2.r30.cf1
.rackcdn.com/user_files/10/midsize/DSC_0102.jpg", "http://49f9ffaf92d711fb5ea1-1b8897185d70b198c119e1d2b7efd8
a2.r30.cf1.rackcdn.com/user_files/10/original/DSC_0102.jpg", "http://49f9ffaf92d711fb5ea1-1b8897185d70b198c11
9e1d2b7efd8a2.r30.cf1.rackcdn.com/user_files/10/thumb/DSC_0102.jpg"}>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment