如何为存储在 Amazon S3 中的每个图像分配默认目录?
How to assign default directory for every image stored in 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;
}
它没有用,因为当前日期有空格,所以我无法稍后在客户端加载图像,因为有空格。
有什么方法可以让每张图片都具有唯一的名称吗?没有空格?
您可以为每一个生成一个随机的十六进制字符串:
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 项目时获得的默认包集的一部分。
用户选择的每张图片都将存储在 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;
}
它没有用,因为当前日期有空格,所以我无法稍后在客户端加载图像,因为有空格。
有什么方法可以让每张图片都具有唯一的名称吗?没有空格?
您可以为每一个生成一个随机的十六进制字符串:
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 项目时获得的默认包集的一部分。