我有一个应用,其中用户的照片是私人的。我将照片(也有缩略图)存储在AWS
s3中。网站上有一个页面,用户可以在其中查看他的照片(即缩略图)。现在,我的问题是如何处理这些文件。我评估过的一些选项是:
我无法评估这两个选项中的哪一个是更好的选择?我想将尽可能多的工作重定向到S3或Cloudfront,但是即使使用单个URL也会使请求首先到达我的服务器。我也想要缓存功能。
那么什么是理想的方式呢?与这些方法有关的特定问题的答案?
我只是从S3流式传输。这非常容易,而签名的URL则困难得多。只要确保在将图像上传到S3时设置了content-type
和content- length
标头即可。
var aws = require('knox').createClient({
key: '',
secret: '',
bucket: ''
})
app.get('/image/:id', function (req, res, next) {
if (!req.user.is.authenticated) {
var err = new Error()
err.status = 403
next(err)
return
}
aws.get('/image/' + req.params.id)
.on('error', next)
.on('response', function (resp) {
if (resp.statusCode !== 200) {
var err = new Error()
err.status = 404
next(err)
return
}
res.setHeader('Content-Length', resp.headers['content-length'])
res.setHeader('Content-Type', resp.headers['content-type'])
// cache-control?
// etag?
// last-modified?
// expires?
if (req.fresh) {
res.statusCode = 304
res.end()
return
}
if (req.method === 'HEAD') {
res.statusCode = 200
res.end()
return
}
resp.pipe(res)
})
})
我正在实施一个在Amazon S3中提供文件存储的应用程序,而用户使用普通文件进行操作 我有什么方法可以重命名/移动整个文件夹(从而递归地修改它的内容)? 或者我必须为每个资源手动实现递归解析和调用copy-delete吗? 谢谢
问题内容: 我的目标: 显示一个对话框,提示用户保存从AWS下载的文件。 我的问题: 我目前正在使用awssum- amazon-s3创建下载流。但是,我仅设法将文件保存到服务器或将其流式传输到命令行…如您从我的代码中看到的那样,我的最后一次尝试是尝试手动设置失败的内容处置头。我无法使用res.download(),因为已经设置了标头? 我如何实现我的目标? 我的节点代码: 我的角度代码: 编写此
问题内容: 我需要列出S3存储桶中某个文件夹中包含的所有文件。 文件夹结构如下 我有与用户有关的文件和与某个用户的联系人有关的文件。我需要同时列出两者。 要列出文件,我使用以下代码: 要列出某个用户的文件,我使用以下前缀: 并且我正确地获得了除子目录之外的目录中的所有文件,例如: 要列出某个用户联系人的文件,我使用以下前缀: 但是在这种情况下,我还将目录本身作为返回的对象: 为什么我会得到这种行为
问题内容: 我有一个s3结构,如下所示: 我需要做的就是给定s3bucket的名称和一个第一级密钥的条目,我需要位于第一级密钥下的所有第二级密钥的名称。因此,从本质上来说,如果我们将其视为一个文件夹,则将获得的名称(即)和其子文件夹之一的名称,我想列出其中的所有文件夹。虽然只是名称,而不是完整的路径。 有人可以指出如何使用亚马逊的Java SDK在Java中做到这一点吗? 谢谢 问题答案: 我做了
我有2个AWS帐户。我试图复制文件从帐户1到帐户2在桶2在美国西部2地区。我有所有必要的IAM政策,相同的凭据适用于两个帐户。我使用python boto3库。 如图所示,复制函数在指向目标帐户2/us-west-2的客户端对象上执行。它是如何获取帐户1/us-east1中的源文件的?我应该提供作为复制函数的输入吗?
我希望我的Spark应用程序(Scala)能够读取S3文件 在我的开发机器上,我可以使用awscli访问S3文件在或中预先配置的配置文件,例如: 但是当尝试从Spark读取这些文件时,使用作为env变量提供的aws_配置文件(aws_配置文件),我得到了以下错误: DoesBucket存在于我的bucket名称中:com.amazonaws.AmazonClientException:BasicA