Specify an explicit upload bucket ID with ?sid= param. (Closes #42)

This commit is contained in:
Christoph Wiechert
2018-12-14 16:02:03 +01:00
parent 3688ce6c2b
commit fa52624374
3 changed files with 31 additions and 20 deletions

View File

@@ -25,6 +25,7 @@ It's an alternative to paid services like Dropbox, WeTransfer.
* Password protected download list ([AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard))
* `/admin` Page lists bucket information, [Screenshot](https://raw.githubusercontent.com/psi-4ward/psitransfer/master/docs/PsiTransfer-Admin.png) (_disabled until you set `adminPass` config value_)
* Lightweight [Vue](https://vuejs.org) based frontend apps. Gzipped (on by default) less than 65k
* Explicit named bucket IDs with query param `sid=<myBucketID>`
**See the blog posts about PsiTransfer: https://psi.cx/tags/PsiTransfer/ and checkout the
[Documentation](https://github.com/psi-4ward/psitransfer/tree/master/docs)**

View File

@@ -9,7 +9,7 @@
select#retention.form-control(:value='retention', :disabled='disabled',
@input="$store.commit('upload/RETENTION', $event.target.value)")
option(v-for='(label, seconds, index) in config.retentions',
:value="seconds", :selected="seconds == retention") {{ label }}
:value="seconds", :selected="seconds === retention") {{ label }}
div
label(for='password') Password
.input-group
@@ -26,20 +26,20 @@
import 'vue-awesome/icons/key';
const passGen = {
_pattern : /[A-Z0-9_\-\+\!]/,
_pattern: /[A-Z0-9_\-+!]/,
_getRandomByte: function() {
const result = new Uint8Array(1);
var fixedcrypto = window.msCrypto;
let fixedcrypto = window.msCrypto;
if (!fixedcrypto) {
var fixedcrypto = window.crypto;
fixedcrypto = window.crypto;
}
fixedcrypto.getRandomValues(result);
return result[0];
},
generate: function(length) {
var fixedcrypto2 = window.msCrypto;
let fixedcrypto2 = window.msCrypto;
if (!fixedcrypto2) {
var fixedcrypto2 = window.crypto;
fixedcrypto2 = window.crypto;
}
if (!fixedcrypto2 || !fixedcrypto2.getRandomValues) return '';
return Array.apply(null, { 'length': length }).map(function() {

View File

@@ -16,6 +16,16 @@ function humanFileSize(fileSizeInBytes) {
let onOnlineHandler = null;
let onOnlineHandlerAttached = false;
function getSid() {
// support setting an explicit SID by location search param
const match = document.location.search.match(/sid=([^&]+)/);
if(match) {
return match[1];
} else {
return md5(uuid()).toString().substr(0, 12);
}
}
export default {
namespaced: true,
@@ -23,7 +33,7 @@ export default {
retention: null,
password: '',
files: [],
sid: md5(uuid()).toString().substr(0, 12),
sid: getSid(),
bytesUploaded: 0,
},