我需要让我的用户上传图片。但我不知道我可以在哪里创建“上传”文件夹,以及在我看来如何访问它。SailsJS用户上传图片
在SailsJS中,我们有一个文件夹资产/图像,但是当我们提升帆(使用Grunt)时,其中的所有图像都将被复制到公共文件夹.tmp中。 所以我无法在资源/图像中创建.tmp文件夹。
有人有解决方案吗? 感谢
我需要让我的用户上传图片。但我不知道我可以在哪里创建“上传”文件夹,以及在我看来如何访问它。SailsJS用户上传图片
在SailsJS中,我们有一个文件夹资产/图像,但是当我们提升帆(使用Grunt)时,其中的所有图像都将被复制到公共文件夹.tmp中。 所以我无法在资源/图像中创建.tmp文件夹。
有人有解决方案吗? 感谢
假设你是一个基于Linux的系统上,你可以在你项目的根目录中创建您的uploads
文件夹,并从assets
文件夹的符号链接是:
mkdir uploads && cd assets && ln -s ../uploads
一旦帆从解除所有文件上传文件夹将通过http://your.host.com/uploads/filename.ext
访问,包括在运行时上传的文件。
也就是说,对于有大量上传的大型应用程序,将文件直接上传到Amazon S3或类似的服务器上并通过CDN提供服务是有意义的。
你可以用于上传文件的船长模块。在最新版本的Sails中,Skipper是默认的主体解析器,因此您可以直接使用它。如果您使用的是Amazon S3,则可以使用skipper-s3模块上传到s3。但最好的做法是直接上传文件而不用点击服务器,通过AJAX请求将文件上传到任何类似s3,cloudinary或其他的CDN。这将减少服务器上的负载。
上传图片
There are two ways to upload images
1. Upload images to Amazon s3 bucket.
2. Upload Images mongodb gridFs.
I would like suggest to Uploading images to Aws (Amazon Web Services) S3 bucket why
S3(Simple Storage Service)
Because S3 bucket is highly Scalable , relaible, fast and inexpensive simple data infrastructure to store.
例AWS S3存储
Amazon provide a library/dependency for javascipt in NodeJs to access S3 bucket.
var AWS = require('aws-sdk');
var accessKeyId ="JHPSJFPDOKK4YLGMW25kLia";
var secretAccessKey ="kkl96vPMrc9rnDBSs5Yqq2cKMHlham5T2wfjBhj89H";
AWS.config.update({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey
});
var s3 = new AWS.S3();
s3.createBucket({Bucket: 'myBucket'}, function() {
var params = {Bucket: 'myBucket', Key: 'myKey', Body: 'Hello!'};
s3.putObject(params, function(err, data) {
if (err){
console.log(err);
}else{
console.log("Successfully uploaded data to myBucket/myKey")
}
})
});
感谢您的回答,我会努力的!对于Amazon S3我做了一些搜索。您是否知道在开发期间提供免费套餐的CDN服务以及生产的适中成本? – user1853777
@ user1853777无法真正推荐任何特定的东西。 MaxCDN在价格/质量方面对我来说效果最好。与此同时,Google的基本搜索提出了这个问题:http://cloudinary.com/pricing,它表示他们甚至有一个免费套餐。但我想你自己做一些研究会更好。 ;) – bredikhin