veliovgroup / Meteor-Files

🚀 Upload files via DDP or HTTP to ☄️ Meteor server FS, AWS, GridFS, DropBox or Google Drive. Fast, secure and robust.
https://packosphere.com/ostrio/files
BSD 3-Clause "New" or "Revised" License
1.11k stars 166 forks source link

Files.load -> options.fileName is not in filepath #875

Open Gobliins opened 1 year ago

Gobliins commented 1 year ago

Hello again,

I use the Files.load(url, options) to read and store data. Inside the DB the filenames are saved correctly and the path to the FS. But when looking inside the directory i only get something like that:

UUID-original-UUID.<ext> -> ../files/76gd9asd8za-orignal-8jdc1hd8.png

I was wondering how this is generated, It's logical that there are UUIDs so no files will be overwritten, but can I somehow modify the generated path / filename as well?

Like UUID-original-filename.<ext> -> ../files/76gd9asd8za-orignal-image.png

Here's my code:

  const options = {
    fileName: newFileName, // image.png for example
    type: fileType,
    meta: {
      oldId: fileObj._id,
      source: 'import',
      collection: 'attachments',
    },
    userId,
    size: fileSize,
  };

  Files.load(loadUrl, options,
      (loadError, fileRef) => {
        if (loadError) {
          return reject(loadError);
        } else {
          return resolve(fileRef);
        }
      }, true);

Regards

dr-dimitru commented 1 year ago

Hello @Gobliins ,

Please take a look on namingFunction option passed to Files Constructor, it should solve your needs.

Feel free to close it in case if the issue is solved on your end.

Gobliins commented 1 year ago

Hey thx @dr-dimitru

Got it! Works fine 👍