Tags: インターネットサービス, trivial-http, ライブラリ
(ql:quickload :trivial-http) (trivial-http:http-download ;; ファイルのURL "http://www.lisperati.com/lisplogo_alien.svg" ;; 保存するファイル名 "/tmp/lisplogo_alien.svg" ;; エラー発生でシグナルを上げない :signal-error? nil) ;=> 41783 ;ダウンロードしたバイト数 ; "http://www.lisperati.com/lisplogo_alien.svg" ;ダウンロードしたURL
CLiki:drakmaを利用してダウンロードクライアントを作成
(defun download-file (filename uri) (with-open-file (out filename :direction :output :if-exists :supersede :element-type '(unsigned-byte 8)) (with-open-stream (input (drakma:http-request uri :want-stream t :connection-timeout nil)) (loop :for b := (read-byte input nil -1) :until (minusp b) :do (write-byte b out))))) ;; 利用例 (download-file "alien.svg" "http://www.lisperati.com/lisplogo_alien.svg")