@@ -77,8 +77,12 @@ func previewHandler(w http.ResponseWriter, r *http.Request) { | |||
switch { | |||
case strings.HasPrefix(contentType, "image/"): | |||
templatePath = "download.image.html" | |||
case strings.HasPrefix(contentType, "video/"): | |||
templatePath = "download.video.html" | |||
case strings.HasPrefix(contentType, "audio/"): | |||
templatePath = "download.audio.html" | |||
case strings.HasPrefix(contentType, "text/"): | |||
templatePath = "download.md.html" | |||
templatePath = "download.markdown.html" | |||
var reader io.ReadCloser | |||
if reader, _, _, err = storage.Get(token, filename); err != nil { | |||
@@ -0,0 +1,142 @@ | |||
<!doctype html> | |||
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> | |||
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> | |||
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> | |||
<!--[if gt IE 8]><!--> | |||
<html class="no-js"> | |||
<!--<![endif]--> | |||
<head> | |||
<meta charset="utf-8"> | |||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
<title>transfer.sh - Easy and fast file sharing from the command-line.</title> | |||
<meta name="description" content="Easy and fast file sharing from the command-line."> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
<!-- Place favicon.ico and apple-touch-icon.png in the root directory --> | |||
<link rel="stylesheet" href="/styles/main.css"> | |||
<link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:100,200,300' rel='stylesheet' type='text/css'> | |||
<link href='//fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'> | |||
<script src="/scripts/vendor/modernizr.js"></script> | |||
</head> | |||
<body id="download"> | |||
<script> | |||
(function(i, s, o, g, r, a, m) { | |||
i['GoogleAnalyticsObject'] = r; | |||
i[r] = i[r] || function() { | |||
(i[r].q = i[r].q || []).push(arguments) | |||
}, i[r].l = 1 * new Date(); | |||
a = s.createElement(o), | |||
m = s.getElementsByTagName(o)[0]; | |||
a.async = 1; | |||
a.src = g; | |||
m.parentNode.insertBefore(a, m) | |||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); | |||
ga('create', 'UA-40833733-1', 'transfer.sh'); | |||
ga('send', 'pageview'); | |||
</script> | |||
<div id="navigation"> | |||
<div class="wrapper"> | |||
<a href="/"> | |||
<h1>transfer.sh</h1> | |||
</a> | |||
<ul class="hidden-xs"> | |||
<li><a href="/">home</a> | |||
</li> | |||
<li><a href="/#samples">sample use cases</a> | |||
</li> | |||
<li><a href="/#contact">contact us</a> | |||
</li> | |||
</ul> | |||
</div> | |||
</div> | |||
<section id="home"> | |||
<div class="wrapper"> | |||
<br/> | |||
<h2> {{.Filename}}</h2> | |||
<h4>type: <b>{{.ContentType}}</b></h4> | |||
<h4>size: <b>{{.ContentLength | format "#,###."}}</b> bytes</h4> | |||
<div class="row animated fadeInDown"> | |||
<div id="from-terminal" class=" box col-md-8 col-md-offset-2 col-xs-12"> | |||
<div class="terminal-top"> | |||
</div> | |||
<div id="terminal" class="terminal preview-image"> | |||
<audio controls> | |||
<source src="{{.Url}}" type="{{.ContentType}}"> | |||
</audio> | |||
</div> | |||
</div> | |||
</div> | |||
<br/> | |||
<div> | |||
<div> | |||
<a href="#" id="copy-link-btn" class="btn-cta btn">copy link</a> | |||
<a href="{{.Url}}" class="btn-cta btn"> download</i> </a> | |||
<div id="copy-link-wrapper" class="copy-link-wrapper"> | |||
<p>Press Ctrl / CMD + C to copy link to your clipboard.</p> | |||
<input readonly="readonly" type="text" value="{{.Url}}" /> | |||
</div> | |||
<div id="overlay" class="overlay"></div> | |||
</div> | |||
</section> | |||
<footer> | |||
<div class="wrapper"> | |||
<img src="/images/Logo-orange.png" alt="Founded in Holland"> | |||
<p>Made with <i class="icon-heart"></i> by <a href="http://blog.dutchcoders.io/" title="Dutch Coders">Dutch Coders</a> | |||
</p> | |||
</div> | |||
</footer> | |||
<a href="https://github.com/dutchcoders/transfer.sh/"> | |||
<img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> | |||
</a> | |||
<script> | |||
(function() { | |||
var uv = document.createElement('script'); | |||
uv.type = 'text/javascript'; | |||
uv.async = true; | |||
uv.src = '//widget.uservoice.com/5rkATbLIm8ClJQeOirOhFg.js'; | |||
var s = document.getElementsByTagName('script')[0]; | |||
s.parentNode.insertBefore(uv, s) | |||
})() | |||
</script> | |||
<!--[if lt IE 7]> | |||
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> | |||
<![endif]--> | |||
<script> | |||
(function(b, o, i, l, e, r) { | |||
b.GoogleAnalyticsObject = l; | |||
b[l] || (b[l] = | |||
function() { | |||
(b[l].q = b[l].q || []).push(arguments) | |||
}); | |||
b[l].l = +new Date; | |||
e = o.createElement(i); | |||
r = o.getElementsByTagName(i)[0]; | |||
e.src = '//www.google-analytics.com/analytics.js'; | |||
r.parentNode.insertBefore(e, r) | |||
}(window, document, 'script', 'ga')); | |||
ga('create', 'UA-40833733-1', 'transfer.sh'); | |||
ga('send', 'pageview'); | |||
</script> | |||
<script src="/scripts/main.js"></script> | |||
</body> | |||
</html> |
@@ -0,0 +1,142 @@ | |||
<!doctype html> | |||
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> | |||
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> | |||
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> | |||
<!--[if gt IE 8]><!--> | |||
<html class="no-js"> | |||
<!--<![endif]--> | |||
<head> | |||
<meta charset="utf-8"> | |||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
<title>transfer.sh - Easy and fast file sharing from the command-line.</title> | |||
<meta name="description" content="Easy and fast file sharing from the command-line."> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
<!-- Place favicon.ico and apple-touch-icon.png in the root directory --> | |||
<link rel="stylesheet" href="/styles/main.css"> | |||
<link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:100,200,300' rel='stylesheet' type='text/css'> | |||
<link href='//fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'> | |||
<script src="/scripts/vendor/modernizr.js"></script> | |||
</head> | |||
<body id="download"> | |||
<script> | |||
(function(i, s, o, g, r, a, m) { | |||
i['GoogleAnalyticsObject'] = r; | |||
i[r] = i[r] || function() { | |||
(i[r].q = i[r].q || []).push(arguments) | |||
}, i[r].l = 1 * new Date(); | |||
a = s.createElement(o), | |||
m = s.getElementsByTagName(o)[0]; | |||
a.async = 1; | |||
a.src = g; | |||
m.parentNode.insertBefore(a, m) | |||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); | |||
ga('create', 'UA-40833733-1', 'transfer.sh'); | |||
ga('send', 'pageview'); | |||
</script> | |||
<div id="navigation"> | |||
<div class="wrapper"> | |||
<a href="/"> | |||
<h1>transfer.sh</h1> | |||
</a> | |||
<ul class="hidden-xs"> | |||
<li><a href="/">home</a> | |||
</li> | |||
<li><a href="/#samples">sample use cases</a> | |||
</li> | |||
<li><a href="/#contact">contact us</a> | |||
</li> | |||
</ul> | |||
</div> | |||
</div> | |||
<section id="home"> | |||
<div class="wrapper"> | |||
<br/> | |||
<h2> {{.Filename}}</h2> | |||
<h4>type: <b>{{.ContentType}}</b></h4> | |||
<h4>size: <b>{{.ContentLength | format "#,###."}}</b> bytes</h4> | |||
<div class="row animated fadeInDown"> | |||
<div id="from-terminal" class=" box col-md-8 col-md-offset-2 col-xs-12"> | |||
<div class="terminal-top"> | |||
</div> | |||
<div id="terminal" class="terminal preview-image"> | |||
<video width="320" height="240" controls> | |||
<source src="{{.Url}}" type="{{.ContentType}}"> | |||
</video> | |||
</div> | |||
</div> | |||
</div> | |||
<br/> | |||
<div> | |||
<div> | |||
<a href="#" id="copy-link-btn" class="btn-cta btn">copy link</a> | |||
<a href="{{.Url}}" class="btn-cta btn"> download</i> </a> | |||
<div id="copy-link-wrapper" class="copy-link-wrapper"> | |||
<p>Press Ctrl / CMD + C to copy link to your clipboard.</p> | |||
<input readonly="readonly" type="text" value="{{.Url}}" /> | |||
</div> | |||
<div id="overlay" class="overlay"></div> | |||
</div> | |||
</section> | |||
<footer> | |||
<div class="wrapper"> | |||
<img src="/images/Logo-orange.png" alt="Founded in Holland"> | |||
<p>Made with <i class="icon-heart"></i> by <a href="http://blog.dutchcoders.io/" title="Dutch Coders">Dutch Coders</a> | |||
</p> | |||
</div> | |||
</footer> | |||
<a href="https://github.com/dutchcoders/transfer.sh/"> | |||
<img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"> | |||
</a> | |||
<script> | |||
(function() { | |||
var uv = document.createElement('script'); | |||
uv.type = 'text/javascript'; | |||
uv.async = true; | |||
uv.src = '//widget.uservoice.com/5rkATbLIm8ClJQeOirOhFg.js'; | |||
var s = document.getElementsByTagName('script')[0]; | |||
s.parentNode.insertBefore(uv, s) | |||
})() | |||
</script> | |||
<!--[if lt IE 7]> | |||
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> | |||
<![endif]--> | |||
<script> | |||
(function(b, o, i, l, e, r) { | |||
b.GoogleAnalyticsObject = l; | |||
b[l] || (b[l] = | |||
function() { | |||
(b[l].q = b[l].q || []).push(arguments) | |||
}); | |||
b[l].l = +new Date; | |||
e = o.createElement(i); | |||
r = o.getElementsByTagName(i)[0]; | |||
e.src = '//www.google-analytics.com/analytics.js'; | |||
r.parentNode.insertBefore(e, r) | |||
}(window, document, 'script', 'ga')); | |||
ga('create', 'UA-40833733-1', 'transfer.sh'); | |||
ga('send', 'pageview'); | |||
</script> | |||
<script src="/scripts/main.js"></script> | |||
</body> | |||
</html> |
@@ -173,7 +173,8 @@ | |||
<span class="code-title"># Add this to .bashrc or its equivalent</span> | |||
<br/>transfer() { | |||
<br># write to output to tmpfile because of progress bar | |||
<br>tmpfile=$( mktemp -t transferXXX ); curl --progress-bar --upload-file $1 https://transfer.sh/$(basename $1) >> $tmpfile; cat $tmpfile; rm -f $tmpfile; } | |||
<br>tmpfile=$( mktemp -t transferXXX ); basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9]/-/g'); curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile; cat $tmpfile; rm -f $tmpfile; | |||
<br/>} | |||
<br/> | |||
<br/>alias transfer=transfer | |||
<br/> | |||
@@ -0,0 +1,67 @@ | |||
<!doctype html> | |||
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> | |||
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> | |||
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> | |||
<!--[if gt IE 8]><!--> | |||
<html class="no-js"> | |||
<!--<![endif]--> | |||
include "includes/head.html" | |||
<body id="download"> | |||
<script> | |||
(function(i, s, o, g, r, a, m) { | |||
i['GoogleAnalyticsObject'] = r; | |||
i[r] = i[r] || function() { | |||
(i[r].q = i[r].q || []).push(arguments) | |||
}, i[r].l = 1 * new Date(); | |||
a = s.createElement(o), | |||
m = s.getElementsByTagName(o)[0]; | |||
a.async = 1; | |||
a.src = g; | |||
m.parentNode.insertBefore(a, m) | |||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); | |||
ga('create', 'UA-40833733-1', 'transfer.sh'); | |||
ga('send', 'pageview'); | |||
</script> | |||
include "includes/navigation.html" | |||
<section id="home"> | |||
<div class="wrapper"> | |||
<br/> | |||
<h2> {{.Filename}}</h2> | |||
<h4>type: <b>{{.ContentType}}</b></h4> | |||
<h4>size: <b>{{.ContentLength | format "#,###."}}</b> bytes</h4> | |||
<div class="row animated fadeInDown"> | |||
<div id="from-terminal" class=" box col-md-8 col-md-offset-2 col-xs-12"> | |||
<div class="terminal-top"> | |||
</div> | |||
<div id="terminal" class="terminal preview-image"> | |||
<audio controls> | |||
<source src="{{.Url}}" type="{{.ContentType}}"> | |||
</audio> | |||
</div> | |||
</div> | |||
</div> | |||
<br/> | |||
<div> | |||
<div> | |||
<a href="#" id="copy-link-btn" class="btn-cta btn">copy link</a> | |||
<a href="{{.Url}}" class="btn-cta btn"> download</i> </a> | |||
<div id="copy-link-wrapper" class="copy-link-wrapper"> | |||
<p>Press Ctrl / CMD + C to copy link to your clipboard.</p> | |||
<input readonly="readonly" type="text" value="{{.Url}}" /> | |||
</div> | |||
<div id="overlay" class="overlay"></div> | |||
</div> | |||
</section> | |||
include "includes/footer.html" | |||
include "includes/js.html" | |||
</body> | |||
</html> |
@@ -0,0 +1,67 @@ | |||
<!doctype html> | |||
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> | |||
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> | |||
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> | |||
<!--[if gt IE 8]><!--> | |||
<html class="no-js"> | |||
<!--<![endif]--> | |||
include "includes/head.html" | |||
<body id="download"> | |||
<script> | |||
(function(i, s, o, g, r, a, m) { | |||
i['GoogleAnalyticsObject'] = r; | |||
i[r] = i[r] || function() { | |||
(i[r].q = i[r].q || []).push(arguments) | |||
}, i[r].l = 1 * new Date(); | |||
a = s.createElement(o), | |||
m = s.getElementsByTagName(o)[0]; | |||
a.async = 1; | |||
a.src = g; | |||
m.parentNode.insertBefore(a, m) | |||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); | |||
ga('create', 'UA-40833733-1', 'transfer.sh'); | |||
ga('send', 'pageview'); | |||
</script> | |||
include "includes/navigation.html" | |||
<section id="home"> | |||
<div class="wrapper"> | |||
<br/> | |||
<h2> {{.Filename}}</h2> | |||
<h4>type: <b>{{.ContentType}}</b></h4> | |||
<h4>size: <b>{{.ContentLength | format "#,###."}}</b> bytes</h4> | |||
<div class="row animated fadeInDown"> | |||
<div id="from-terminal" class=" box col-md-8 col-md-offset-2 col-xs-12"> | |||
<div class="terminal-top"> | |||
</div> | |||
<div id="terminal" class="terminal preview-image"> | |||
<video width="320" height="240" controls> | |||
<source src="{{.Url}}" type="{{.ContentType}}"> | |||
</video> | |||
</div> | |||
</div> | |||
</div> | |||
<br/> | |||
<div> | |||
<div> | |||
<a href="#" id="copy-link-btn" class="btn-cta btn">copy link</a> | |||
<a href="{{.Url}}" class="btn-cta btn"> download</i> </a> | |||
<div id="copy-link-wrapper" class="copy-link-wrapper"> | |||
<p>Press Ctrl / CMD + C to copy link to your clipboard.</p> | |||
<input readonly="readonly" type="text" value="{{.Url}}" /> | |||
</div> | |||
<div id="overlay" class="overlay"></div> | |||
</div> | |||
</section> | |||
include "includes/footer.html" | |||
include "includes/js.html" | |||
</body> | |||
</html> |