【发布时间】:2016-03-30 10:48:27
【问题描述】:
我是 AWS 的新手,我想在开始构建之前了解一些关键概念的工作原理。我找到了本教程,用于在节点 JS 中将图像直接上传到 AWS:
https://devcenter.heroku.com/articles/s3-upload-node#uploading-directly-to-s3
在我的 web 应用程序中,我使用的是 MongoDB,每个用户(用户架构)都可以更改他们的个人资料图片。在高层次上,我在想一旦用户选择了一张新图片并点击保存,我会按照上述步骤将新图片直接上传到 AWS 'bucket'。
然后我将如何将它呈现在用户的个人资料页面上?我是否需要在 AWS 端使用数据库(并跳过我为我的应用程序使用的 mongodb 部分)将每个用户与个人资料图片相关联?我了解“保存到 AWS”部分,但不清楚的是如何以与用户关联的方式检索/渲染图像(在保存到 AWS 之后)。这是我的猫鼬用户架构:
'use strict';
var crypto = require('crypto');
var bcrypt = require('bcryptjs');
var mongoose = require('mongoose');
var recipeSchema = require('./recipe.js').schema;
//need the objectID, see: https://gist.github.com/fwielstra/1025038
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var userSchema = new Schema({
email: {
type: String
},
password: String,
resetPasswordToken: String,
resetPasswordExpires: Date,
//image: String ---> replacing this url with AWS
picture: ObjectId,
name: String,
facebook: {
id: String,
token: String,
pictures: String
},
emailSubscription: Boolean,
recipeBox: [{
id: ObjectId,
done: Boolean
}]
});
var User = module.exports = mongoose.model('User', userSchema);
【问题讨论】:
标签: node.js mongodb amazon-web-services amazon-s3