Made sure uploads respect storage limits

This commit is contained in:
ThaumRystra
2024-09-06 22:58:07 +02:00
parent 679a123a2a
commit e2ffaa203a
4 changed files with 88 additions and 37 deletions

View File

@@ -1,5 +1,6 @@
import { incrementFileStorageUsed } from '/imports/api/users/methods/updateFileStorageUsed';
import assertUserHasFileSpace from '/imports/api/files/assertUserHasFileSpace';
let createS3FilesCollection;
if (Meteor.isServer) {
createS3FilesCollection = require('/imports/api/files/server/s3FileStorage').createS3FilesCollection
@@ -11,10 +12,12 @@ const UserImages = createS3FilesCollection({
collectionName: 'userImages',
storagePath: Meteor.isDevelopment ? '../../../../../fileStorage/userImages' : 'assets/app/userImages',
onBeforeUpload(file) {
// Allow upload files under 10MB
if (file.size > 10485760) {
return 'Please upload with size equal or less than 10MB';
// Allow upload files under 30MB
if (file.size > 30_000_000) {
return 'Images must be less than 30MB';
}
// Make sure the user has enough space
assertUserHasFileSpace(Meteor.userId(), file.size);
// Allow common image extensions
if (!/gif|png|jpe?g|webp/i.test(file.extension || '')) {
return 'Please upload an image file only';