mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 03:29:16 +00:00
adding binary attachments to sealed topics
This commit is contained in:
parent
f3fc131138
commit
151773352f
@ -163,7 +163,7 @@ async function upload(entry, update, complete) {
|
|||||||
entry.active = {};
|
entry.active = {};
|
||||||
try {
|
try {
|
||||||
if (file.encrypted) {
|
if (file.encrypted) {
|
||||||
const { data, type, mime, size, getEncryptedBlock, position } = file;
|
const { data, type, mime, size, getEncryptedBlock, position, label, extension } = file;
|
||||||
const thumb = await getThumb(data, type, mime, size, position);
|
const thumb = await getThumb(data, type, mime, size, position);
|
||||||
const parts = [];
|
const parts = [];
|
||||||
for (let pos = 0; pos < size; pos += ENCRYPTED_BLOCK_SIZE) {
|
for (let pos = 0; pos < size; pos += ENCRYPTED_BLOCK_SIZE) {
|
||||||
@ -182,17 +182,13 @@ async function upload(entry, update, complete) {
|
|||||||
parts.push({ blockIv, partId: part.data.assetId });
|
parts.push({ blockIv, partId: part.data.assetId });
|
||||||
}
|
}
|
||||||
entry.assets.push({
|
entry.assets.push({
|
||||||
encrypted: { type, thumb, parts }
|
encrypted: { type, label, extension, thumb, parts }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (file.type === 'image') {
|
else if (file.type === 'image') {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
if (file.data.startsWith('file:')) {
|
const uri = file.data.startsWidth('file:') ? file.data : `file://${file.data}`;
|
||||||
formData.append("asset", {uri: file.data, name: 'asset', type: 'application/octent-stream'});
|
formData.append("asset", {uri: uri, name: 'asset', type: 'application/octent-stream'});
|
||||||
}
|
|
||||||
else {
|
|
||||||
formData.append("asset", {uri: 'file://' + file.data, name: 'asset', type: 'application/octent-stream'});
|
|
||||||
}
|
|
||||||
let transform = encodeURIComponent(JSON.stringify(["ithumb;photo", "ilg;photo"]));
|
let transform = encodeURIComponent(JSON.stringify(["ithumb;photo", "ilg;photo"]));
|
||||||
let asset = await axios.post(`${entry.baseUrl}assets${entry.urlParams}&transforms=${transform}`, formData, {
|
let asset = await axios.post(`${entry.baseUrl}assets${entry.urlParams}&transforms=${transform}`, formData, {
|
||||||
headers: { 'Content-Type': 'multipart/form-data' },
|
headers: { 'Content-Type': 'multipart/form-data' },
|
||||||
@ -212,12 +208,8 @@ async function upload(entry, update, complete) {
|
|||||||
}
|
}
|
||||||
else if (file.type === 'video') {
|
else if (file.type === 'video') {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
if (file.data.startsWith('file:')) {
|
const uri = file.data.startsWidth('file:') ? file.data : `file://${file.data}`;
|
||||||
formData.append("asset", {uri: file.data, name: 'asset', type: 'application/octent-stream'});
|
formData.append("asset", {uri: uri, name: 'asset', type: 'application/octent-stream'});
|
||||||
}
|
|
||||||
else {
|
|
||||||
formData.append("asset", {uri: 'file://' + file.data, name: 'asset', type: 'application/octent-stream'});
|
|
||||||
}
|
|
||||||
let thumb = 'vthumb;video;' + file.position;
|
let thumb = 'vthumb;video;' + file.position;
|
||||||
let transform = encodeURIComponent(JSON.stringify(["vlq;video", "vhd;video", thumb]));
|
let transform = encodeURIComponent(JSON.stringify(["vlq;video", "vhd;video", thumb]));
|
||||||
let asset = await axios.post(`${entry.baseUrl}assets${entry.urlParams}&transforms=${transform}`, formData, {
|
let asset = await axios.post(`${entry.baseUrl}assets${entry.urlParams}&transforms=${transform}`, formData, {
|
||||||
@ -239,12 +231,8 @@ async function upload(entry, update, complete) {
|
|||||||
}
|
}
|
||||||
else if (file.type === 'audio') {
|
else if (file.type === 'audio') {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
if (file.data.startsWith('file:')) {
|
const uri = file.data.startsWidth('file:') ? file.data : `file://${file.data}`;
|
||||||
formData.append("asset", {uri: file.data, name: 'asset', type: 'application/octent-stream'});
|
formData.append("asset", {uri: uri, name: 'asset', type: 'application/octent-stream'});
|
||||||
}
|
|
||||||
else {
|
|
||||||
formData.append("asset", {uri: 'file://' + file.data, name: 'asset', type: 'application/octent-stream'});
|
|
||||||
}
|
|
||||||
let transform = encodeURIComponent(JSON.stringify(["acopy;audio"]));
|
let transform = encodeURIComponent(JSON.stringify(["acopy;audio"]));
|
||||||
let asset = await axios.post(`${entry.baseUrl}assets${entry.urlParams}&transforms=${transform}`, formData, {
|
let asset = await axios.post(`${entry.baseUrl}assets${entry.urlParams}&transforms=${transform}`, formData, {
|
||||||
headers: { 'Content-Type': 'multipart/form-data' },
|
headers: { 'Content-Type': 'multipart/form-data' },
|
||||||
@ -262,6 +250,27 @@ async function upload(entry, update, complete) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
else if (file.type === 'binary') {
|
||||||
|
const formData = new FormData();
|
||||||
|
const uri = file.data.startsWith('file:') ? file.data : `file://${file.data}`;
|
||||||
|
formData.append("asset", {uri: uri, name: 'asset', type: 'application/octent-stream'});
|
||||||
|
let asset = await axios.post(`${entry.baseUrl}blocks${entry.urlParams}&body=multipart`, formData, {
|
||||||
|
headers: { 'Content-Type': 'multipart/form-data' },
|
||||||
|
signal: entry.cancel.signal,
|
||||||
|
onUploadProgress: (ev) => {
|
||||||
|
const { loaded, total } = ev;
|
||||||
|
entry.active = { loaded, total }
|
||||||
|
update();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
entry.assets.push({
|
||||||
|
binary: {
|
||||||
|
label: file.label,
|
||||||
|
extension: file.extension,
|
||||||
|
data: asset.data.assetId,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
entry.active = null;
|
entry.active = null;
|
||||||
upload(entry, update, complete);
|
upload(entry, update, complete);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user