mirror of
https://codeberg.org/yeentown/barkey.git
synced 2025-07-07 20:44:34 +00:00
Apply suggestions
This commit is contained in:
parent
137cb430b5
commit
76b0c1ce26
1 changed files with 18 additions and 7 deletions
|
@ -22,10 +22,10 @@ export class BunnyService {
|
||||||
@bindThis
|
@bindThis
|
||||||
public getBunnyInfo(meta: MiMeta) {
|
public getBunnyInfo(meta: MiMeta) {
|
||||||
return {
|
return {
|
||||||
endpoint: meta.objectStorageEndpoint ?? '',
|
endpoint: meta.objectStorageEndpoint,
|
||||||
accessKey: meta.objectStorageSecretKey ?? '',
|
accessKey: meta.objectStorageSecretKey,
|
||||||
zone: meta.objectStorageBucket ?? '',
|
zone: meta.objectStorageBucket,
|
||||||
prefix: meta.objectStoragePrefix ?? '',
|
fullUrl: `https://${meta.objectStorageEndpoint}/${meta.objectStorageBucket}`,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,9 +33,16 @@ export class BunnyService {
|
||||||
public async upload(meta: MiMeta, path: string, input: fs.ReadStream | Buffer) {
|
public async upload(meta: MiMeta, path: string, input: fs.ReadStream | Buffer) {
|
||||||
const client = this.getBunnyInfo(meta);
|
const client = this.getBunnyInfo(meta);
|
||||||
|
|
||||||
// Required to convert the buffer from webpulic and thumbnail to a ReadableStream for PUT
|
if (!client.endpoint || !client.zone || !client.accessKey) {
|
||||||
|
return console.error('Missing Information');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Required to convert the buffer from webpublic and thumbnail to a ReadableStream for PUT
|
||||||
const data = Buffer.isBuffer(input) ? Readable.from(input) : input;
|
const data = Buffer.isBuffer(input) ? Readable.from(input) : input;
|
||||||
|
|
||||||
|
const agent = this.httpRequestService.getAgentByUrl(new URL(`${client.fullUrl}/${path}`), !meta.objectStorageUseProxy, true);
|
||||||
|
|
||||||
|
// Seperation of path and host/domain is required here
|
||||||
const options = {
|
const options = {
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
host: client.endpoint,
|
host: client.endpoint,
|
||||||
|
@ -44,6 +51,7 @@ export class BunnyService {
|
||||||
AccessKey: client.accessKey,
|
AccessKey: client.accessKey,
|
||||||
'Content-Type': 'application/octet-stream',
|
'Content-Type': 'application/octet-stream',
|
||||||
},
|
},
|
||||||
|
agent: agent,
|
||||||
};
|
};
|
||||||
|
|
||||||
const req = https.request(options);
|
const req = https.request(options);
|
||||||
|
@ -56,13 +64,16 @@ export class BunnyService {
|
||||||
data.destroy();
|
data.destroy();
|
||||||
});
|
});
|
||||||
|
|
||||||
// wait till stream gets destroyed upon finish of piping to prevent the UI from showing the upload as success wait too early
|
// wait till stream gets destroyed upon finish of piping to prevent the UI from showing the upload as success way too early
|
||||||
await finished(data);
|
await finished(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
public delete(meta: MiMeta, file: string) {
|
public delete(meta: MiMeta, file: string) {
|
||||||
const client = this.getBunnyInfo(meta);
|
const client = this.getBunnyInfo(meta);
|
||||||
return this.httpRequestService.send(`https://${client.endpoint}/${client.zone}/${file}`, { method: 'DELETE', headers: { AccessKey: client.accessKey } });
|
if (!client.endpoint || !client.zone || !client.accessKey) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return this.httpRequestService.send(`${client.fullUrl}/${file}`, { method: 'DELETE', headers: { AccessKey: client.accessKey } });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue