mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-07-26 13:47:40 +00:00
Implementation of ftp:// support for downloading. #48
This commit is contained in:
@@ -9,6 +9,7 @@ gom 'github.com/mitchellh/goamz/s3', :commit => '55f224c07975fddef9d2116600c664e
|
|||||||
gom 'github.com/mkrautz/goar', :commit => '36eb5f3452b1283a211fa35bc00c646fd0db5c4b'
|
gom 'github.com/mkrautz/goar', :commit => '36eb5f3452b1283a211fa35bc00c646fd0db5c4b'
|
||||||
gom 'github.com/smira/commander', :commit => 'f408b00e68d5d6e21b9f18bd310978dafc604e47'
|
gom 'github.com/smira/commander', :commit => 'f408b00e68d5d6e21b9f18bd310978dafc604e47'
|
||||||
gom 'github.com/smira/flag', :commit => '0d0aac2addb39050f45e92c5a6252926096dc841'
|
gom 'github.com/smira/flag', :commit => '0d0aac2addb39050f45e92c5a6252926096dc841'
|
||||||
|
gom 'github.com/smira/go-ftp-protocol/protocol', :commit => '066b75c2b70dca7ae10b1b88b47534a3c31ccfaa'
|
||||||
gom 'github.com/syndtr/goleveldb/leveldb', :commit => 'a44c00531ccc005546f20c6e00ab7bb9a8f6b2e0'
|
gom 'github.com/syndtr/goleveldb/leveldb', :commit => 'a44c00531ccc005546f20c6e00ab7bb9a8f6b2e0'
|
||||||
gom 'github.com/ugorji/go/codec', :commit => '71c2886f5a673a35f909803f38ece5810165097b'
|
gom 'github.com/ugorji/go/codec', :commit => '71c2886f5a673a35f909803f38ece5810165097b'
|
||||||
gom 'github.com/wsxiaoys/terminal/color', :commit => '5668e431776a7957528361f90ce828266c69ed08'
|
gom 'github.com/wsxiaoys/terminal/color', :commit => '5668e431776a7957528361f90ce828266c69ed08'
|
||||||
|
|||||||
+5
-1
@@ -7,6 +7,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/smira/aptly/aptly"
|
"github.com/smira/aptly/aptly"
|
||||||
"github.com/smira/aptly/utils"
|
"github.com/smira/aptly/utils"
|
||||||
|
"github.com/smira/go-ftp-protocol/protocol"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -47,6 +48,7 @@ type downloadTask struct {
|
|||||||
func NewDownloader(threads int, downLimit int64, progress aptly.Progress) aptly.Downloader {
|
func NewDownloader(threads int, downLimit int64, progress aptly.Progress) aptly.Downloader {
|
||||||
transport := *http.DefaultTransport.(*http.Transport)
|
transport := *http.DefaultTransport.(*http.Transport)
|
||||||
transport.DisableCompression = true
|
transport.DisableCompression = true
|
||||||
|
transport.RegisterProtocol("ftp", &protocol.FTPRoundTripper{})
|
||||||
|
|
||||||
downloader := &downloaderImpl{
|
downloader := &downloaderImpl{
|
||||||
queue: make(chan *downloadTask, 1000),
|
queue: make(chan *downloadTask, 1000),
|
||||||
@@ -125,7 +127,9 @@ func (downloader *downloaderImpl) handleTask(task *downloadTask) {
|
|||||||
task.result <- err
|
task.result <- err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
if resp.Body != nil {
|
||||||
|
defer resp.Body.Close()
|
||||||
|
}
|
||||||
|
|
||||||
if resp.StatusCode < 200 || resp.StatusCode > 299 {
|
if resp.StatusCode < 200 || resp.StatusCode > 299 {
|
||||||
task.result <- fmt.Errorf("HTTP code %d while fetching %s", resp.StatusCode, task.url)
|
task.result <- fmt.Errorf("HTTP code %d while fetching %s", resp.StatusCode, task.url)
|
||||||
|
|||||||
Reference in New Issue
Block a user