fix: disable thumbnails for AppData uploads

This commit is contained in:
KernelDeimos 2024-10-10 15:02:41 -04:00
parent 823ab28448
commit 37e7b6ad70
2 changed files with 28 additions and 2 deletions

View File

@ -165,6 +165,18 @@ module.exports = class FSNodeContext {
return ! this.entry.parent_uid; return ! this.entry.parent_uid;
} }
async isAppDataDirectory () {
if ( this.isRoot ) return false;
if ( this.found === undefined ) {
await this.fetchEntry();
}
if ( this.isRoot ) return false;
const components = await this.getPathComponents();
if ( components.length < 2 ) return false;
return components[1] === 'AppData';
}
async isPublic () { async isPublic () {
if ( this.isRoot ) return false; if ( this.isRoot ) return false;
const components = await this.getPathComponents(); const components = await this.getPathComponents();
@ -176,6 +188,18 @@ module.exports = class FSNodeContext {
async getPathComponents () { async getPathComponents () {
if ( this.isRoot ) return []; if ( this.isRoot ) return [];
// We can get path components for non-existing nodes if they
// have a path selector
if ( ! await this.exists() ) {
if ( this.selector instanceof NodePathSelector ) {
let path = this.selector.value;
if ( path.startsWith('/') ) path = path.slice(1);
return path.split('/');
}
// TODO: add support for NodeChildSelector as well
}
let path = await this.get('path'); let path = await this.get('path');
if ( path.startsWith('/') ) path = path.slice(1); if ( path.startsWith('/') ) path = path.slice(1);
return path.split('/'); return path.split('/');

View File

@ -299,7 +299,9 @@ class HLWrite extends HLFilesystemOperation {
this.checkpoint('before thumbnail'); this.checkpoint('before thumbnail');
let thumbnail_promise = new TeePromise(); let thumbnail_promise = new TeePromise();
(async () => { if ( await destination.isAppDataDirectory() ) {
thumbnail_promise.resolve(undefined);
} else (async () => {
const reason = await (async () => { const reason = await (async () => {
const { mime } = this.modules; const { mime } = this.modules;
const thumbnails = context.get('services').get('thumbnails'); const thumbnails = context.get('services').get('thumbnails');