@@ -77,8 +77,12 @@ func previewHandler(w http.ResponseWriter, r *http.Request) { | |||||
switch { | switch { | ||||
case strings.HasPrefix(contentType, "image/"): | case strings.HasPrefix(contentType, "image/"): | ||||
templatePath = "download.image.html" | 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/"): | case strings.HasPrefix(contentType, "text/"): | ||||
templatePath = "download.md.html" | |||||
templatePath = "download.markdown.html" | |||||
var reader io.ReadCloser | var reader io.ReadCloser | ||||
if reader, _, _, err = storage.Get(token, filename); err != nil { | 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> | <span class="code-title"># Add this to .bashrc or its equivalent</span> | ||||
<br/>transfer() { | <br/>transfer() { | ||||
<br># write to output to tmpfile because of progress bar | <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/> | ||||
<br/>alias transfer=transfer | <br/>alias transfer=transfer | ||||
<br/> | <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> |