Merge pull request 'f105_umstellung_seaweedS3' (#32) from f105_umstellung_seaweedS3 into development
All checks were successful
InnoHub Processor/tatort/pipeline/head This commit looks good
All checks were successful
InnoHub Processor/tatort/pipeline/head This commit looks good
Reviewed-on: #32
This commit was merged in pull request #32.
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"minio": {
|
"minio": {
|
||||||
"endPoint": "api-s3.innovation-hub-niedersachsen.de",
|
"endPoint": "sws3.innovation-hub-niedersachsen.de",
|
||||||
"port": 443,
|
"port": 443,
|
||||||
"useSSL": true,
|
"useSSL": true,
|
||||||
"accessKey": "GxKhfnfkNvlDU7qzsz0D",
|
"accessKey": "wjpKrmaqXra99rX3D61H",
|
||||||
"secretKey": "cqSM5rIRr4MPtqzu2sNKgmB9k2OghPbyxwAWogeM"
|
"secretKey": "fTPi0u0FR6Lv9Y9IKydWv6WM0EA5XrsK008HCt9u"
|
||||||
},
|
},
|
||||||
"jwt": {
|
"jwt": {
|
||||||
"secret": "@S2!q@@wXz$dCQ8JoVsHLpzaJ6JCfB",
|
"secret": "@S2!q@@wXz$dCQ8JoVsHLpzaJ6JCfB",
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { client } from '$lib/minio';
|
import { client, BUCKET } from '$lib/minio';
|
||||||
|
|
||||||
export default async function vorgangNumberOccupied(vorgangNumber: string): Promise<boolean> {
|
export default async function vorgangNumberOccupied(vorgangNumber: string): Promise<boolean> {
|
||||||
const prefix = `${vorgangNumber}`;
|
const prefix = `${vorgangNumber}`;
|
||||||
const promise: Promise<boolean> = new Promise((resolve) => {
|
const promise: Promise<boolean> = new Promise((resolve) => {
|
||||||
const stream = client.listObjectsV2('tatort', prefix, false, '');
|
const stream = client.listObjectsV2(BUCKET, prefix, false, '');
|
||||||
stream.on('data', () => {
|
stream.on('data', () => {
|
||||||
stream.destroy();
|
stream.destroy();
|
||||||
resolve(true);
|
resolve(true);
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ import config from '$lib/config';
|
|||||||
/** export const client = new Minio.Client(config.minio); */
|
/** export const client = new Minio.Client(config.minio); */
|
||||||
export const client = new Client(config.minio);
|
export const client = new Client(config.minio);
|
||||||
|
|
||||||
export const BUCKET = 'tatort';
|
const isProd = process.env.NODE_ENV == 'production';
|
||||||
|
const BUCKET = isProd ? 'tatort' : 'tatort-dev';
|
||||||
|
|
||||||
|
export { BUCKET };
|
||||||
|
|
||||||
export const TOKENFILENAME = '__perm__';
|
export const TOKENFILENAME = '__perm__';
|
||||||
export const CONFIGFILENAME = 'config.json';
|
export const CONFIGFILENAME = 'config.json';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Readable } from 'stream';
|
import { Readable } from 'stream';
|
||||||
import { client } from '$lib/minio';
|
import { BUCKET, client } from '$lib/minio';
|
||||||
import { fail } from '@sveltejs/kit';
|
import { fail } from '@sveltejs/kit';
|
||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ export const actions = {
|
|||||||
objectName += '.glb';
|
objectName += '.glb';
|
||||||
}
|
}
|
||||||
|
|
||||||
const url = await client.presignedPutObject('tatort', objectName);
|
const url = await client.presignedPutObject(BUCKET, objectName);
|
||||||
|
|
||||||
return { url };
|
return { url };
|
||||||
},
|
},
|
||||||
@@ -95,7 +95,7 @@ export const actions = {
|
|||||||
const vorgang = data.vorgang;
|
const vorgang = data.vorgang;
|
||||||
const name = data.name;
|
const name = data.name;
|
||||||
|
|
||||||
const url = await client.presignedPutObject('tatort', `${vorgang}/${name}`, 60);
|
const url = await client.presignedPutObject(BUCKET, `${vorgang}/${name}`, 60);
|
||||||
|
|
||||||
return { url };
|
return { url };
|
||||||
},
|
},
|
||||||
@@ -106,7 +106,7 @@ export const actions = {
|
|||||||
const stream = data.file.stream();
|
const stream = data.file.stream();
|
||||||
const metaData = { 'Content-Type': 'model-gtlf-binary', 'X-VorgangsNr': '4711' };
|
const metaData = { 'Content-Type': 'model-gtlf-binary', 'X-VorgangsNr': '4711' };
|
||||||
const result = new Promise((resolve, reject) => {
|
const result = new Promise((resolve, reject) => {
|
||||||
client.putObject('tatort', name, Readable.from(stream), metaData, function (err, etag) {
|
client.putObject(BUCKET, name, Readable.from(stream), metaData, function (err, etag) {
|
||||||
if (err) return reject(err);
|
if (err) return reject(err);
|
||||||
resolve(etag);
|
resolve(etag);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { client } from '$lib/minio';
|
import { BUCKET, client } from '$lib/minio';
|
||||||
import type { PageServerLoad } from './$types';
|
import type { PageServerLoad } from './$types';
|
||||||
|
|
||||||
export const load: PageServerLoad = async ({ params }) => {
|
export const load: PageServerLoad = async ({ params }) => {
|
||||||
const { vorgang, tatort } = params;
|
const { vorgang, tatort } = params;
|
||||||
const url = await client.presignedUrl('GET', 'tatort', `${vorgang}/${tatort}`);
|
const url = await client.presignedUrl('GET', BUCKET, `${vorgang}/${tatort}`);
|
||||||
return { url };
|
return { url };
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { client } from '$lib/minio';
|
import { BUCKET, client } from '$lib/minio';
|
||||||
import {
|
import {
|
||||||
deleteVorgangByToken,
|
deleteVorgangByToken,
|
||||||
getCrimesListByToken,
|
getCrimesListByToken,
|
||||||
@@ -11,7 +11,7 @@ export async function DELETE({ params }) {
|
|||||||
|
|
||||||
const object_list = await new Promise((resolve, reject) => {
|
const object_list = await new Promise((resolve, reject) => {
|
||||||
const res = [];
|
const res = [];
|
||||||
const items_str = client.listObjects('tatort', vorgangToken, true);
|
const items_str = client.listObjects(BUCKET, vorgangToken, true);
|
||||||
|
|
||||||
items_str.on('data', (obj) => {
|
items_str.on('data', (obj) => {
|
||||||
res.push(obj.name);
|
res.push(obj.name);
|
||||||
@@ -24,7 +24,7 @@ export async function DELETE({ params }) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
await client.removeObjects('tatort', object_list);
|
await client.removeObjects(BUCKET, object_list);
|
||||||
deleteVorgangByToken(vorgangToken);
|
deleteVorgangByToken(vorgangToken);
|
||||||
|
|
||||||
return new Response(null, { status: 204 });
|
return new Response(null, { status: 204 });
|
||||||
|
|||||||
@@ -40,10 +40,9 @@ export async function PUT({ params, request }) {
|
|||||||
|
|
||||||
const vorgangToken = params.vorgang;
|
const vorgangToken = params.vorgang;
|
||||||
|
|
||||||
|
|
||||||
// prepare copy, incl. check if new name exists already
|
// prepare copy, incl. check if new name exists already
|
||||||
const crimeOldName = data['oldName'];
|
const crimeOldName = data['oldName'];
|
||||||
const crimeS3FullBucketPathOld = `/tatort/${vorgangToken}/${crimeOldName}`;
|
const crimeS3FullBucketPathOld = `/${BUCKET}/${vorgangToken}/${crimeOldName}`;
|
||||||
const crimeNewName = `${vorgangToken}/${data['newName']}`;
|
const crimeNewName = `${vorgangToken}/${data['newName']}`;
|
||||||
|
|
||||||
if (!crimeOldName || !crimeNewName) {
|
if (!crimeOldName || !crimeNewName) {
|
||||||
@@ -51,14 +50,14 @@ export async function PUT({ params, request }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.statObject('tatort', crimeNewName);
|
await client.statObject(BUCKET, crimeNewName);
|
||||||
return json({ msg: 'Die Datei existiert bereits.' }, { status: 400 });
|
return json({ msg: 'Die Datei existiert bereits.' }, { status: 400 });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error, 'continue operation');
|
console.log(error, 'continue operation');
|
||||||
}
|
}
|
||||||
|
|
||||||
await client.copyObject('tatort', crimeNewName, crimeS3FullBucketPathOld);
|
await client.copyObject(BUCKET, crimeNewName, crimeS3FullBucketPathOld);
|
||||||
await client.removeObject('tatort', `${vorgangToken}/${crimeOldName}`);
|
await client.removeObject(BUCKET, `${vorgangToken}/${crimeOldName}`);
|
||||||
|
|
||||||
return json({ success: 'success' }, { status: 200 });
|
return json({ success: 'success' }, { status: 200 });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user