Heroku / Ruby Sinatra で Web ドメインをスクレイピングし、指定されたすべてのファイル タイプをダウンロードする Web ツールを構築しています (ダウンロードするドメインのファイル タイプのサイトマップの zip ファイルを提供する必要があります)。
Heroku で ZipFile を構築する方法を理解しようとしています。ホームディレクトリを設定するにはどうすればよいですか? 次に、ZipFile を取得したら、ダウンロードできるようにリンクするにはどうすればよいですか?
これまでの関連コードの一部を次に示します。
anemone.after_crawl do
puts "Crawl finished. Gathering files, preparing download..."
datasets.each do |url|
u = URI.parse(url.to_s)
Net::HTTP.start(u.host) { |http|
resp = http.get(u.path)
if u.path[0] == "/"
u.path[0] = ''
end
full_path = u.path.split("/")
i = 0
len = full_path.size
filename = full_path[-1]
Zip::ZipFile.open(u.host + ".zip", Zip::ZipFile::CREATE) {
|zipfile|
while i < (len-1) do
directory = full_path[i]
unless File.directory?(directory)
zipfile.mkdir(directory)
end
Dir.chdir directory
i+=1
end
zipfile.add(filename);
while (i > 0) do
Dir.chdir File.expand_path("..",Dir.pwd)
i-=1
end
}
}
end
end