我想请求使用nodejs在DigitalOcean / S3`中提供通过对象存储存储的文件的帮助。
我当前的应用程序检查nodejs app文件夹中的./public/
文件夹,如下所示:
app.use(express.static(path.join(__dirname, 'public')));
和routes / index.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.render('home', { title: 'homepage' });
});
module.exports = router;
如何让应用程序提供位于存储桶中./public/
目录中的文件。
DIR s3://my***/public/
非常感谢您的帮助。
答案 0 :(得分:0)
我认为你混淆了S3的目的,当你代理对数据的调用(s3)并将其交还给客户端时,它不像数据库。通常,您将以允许任何人查看其中的单个项目但不对其进行索引或更新的方式公开S3存储桶。
从那里,您可以查找完整的文件URL并将其传递回用户/浏览器/应用程序。例如,我通常将S3位置存储在我的数据库中,然后将其拉出并将其附加到S3存储桶URL的末尾,然后将其移回前端以直接从S3渲染我的图像。 / p>
如果要将自己的域名附加到S3,可以签出AWS Cloudfront并使用CDN功能。这使您可以将自己的域名附加到存储桶,并从全球任何地方快速提供服务。