Как назначить каталог по умолчанию для каждого изображения, хранящегося в Amazon S3?

Каждое изображение, выбранное пользователем, будет храниться в Amazon S3, это мой код

  key: function ( file ) {
    var user = Meteor.users.findOne( this.userId );
    return user.emails[0].address + "/screenshots" + "/" + file.name;
  }

Основываясь на моем коде, изображение будет сохранено в почтовом каталоге пользователя, затем в папке со скриншотами, а затем в имени файла. проблема в том, что пользователь хотел сохранить два изображения с одинаковыми именами. Последняя картинка перезапишет первую.

я попробовал это решение

  key: function ( file ) {
    var today = new Date();
    var user = Meteor.users.findOne( this.userId );
    return user.emails[0].address + "/screenshots" + "/" + today + file.name;
  }

это не сработало, потому что у текущей даты есть пробелы, поэтому я не могу загрузить изображение позже в клиенте из-за пробелов.

Любая идея о том, как я могу дать каждому изображению уникальное имя? без пробелов?

1 ответ

Решение

Вы можете сгенерировать случайную шестнадцатеричную строку для каждого:

key: function ( file ) {
    var unique = Random.hexString(16);;
    var user = Meteor.users.findOne( this.userId );
    return user.emails[0].address + "/screenshots" + "/" + unique + file.name;
}

Random должен быть частью набора пакетов по умолчанию, который вы получаете при создании проекта Meteor.

Другие вопросы по тегам