mirror of
https://github.com/dutchcoders/transfer.sh.git
synced 2024-12-25 11:50:18 +01:00
added preview for video and audio, updated alias example
This commit is contained in:
parent
1919d0860f
commit
989910711d
8 changed files with 425 additions and 2 deletions
|
@ -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 {
|
||||
|
|
142
transfersh-server/static/download.audio.html
Normal file
142
transfersh-server/static/download.audio.html
Normal file
|
@ -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>
|
142
transfersh-server/static/download.video.html
Normal file
142
transfersh-server/static/download.video.html
Normal file
|
@ -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/>
|
||||
|
|
67
transfersh-web/download.audio.html
Normal file
67
transfersh-web/download.audio.html
Normal file
|
@ -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>
|
67
transfersh-web/download.video.html
Normal file
67
transfersh-web/download.video.html
Normal file
|
@ -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>
|
Loading…
Reference in a new issue