从AWS文档中,我理解:
但是,这些规则似乎过于宽松.
例如,如果我创建一个名为"../../d"的密钥,当我尝试使用GET OBJECT API访问它时会发生400 ERROR.有趣的是,访问'../d'没问题.
是否有文件说明什么是合法的?
目前我们使用的是aws-sdkv2,通过这种方式提取上传的文件URL
const res = await S3Client
.upload({
Body: body,
Bucket: bucket,
Key: key,
ContentType: contentType,
})
.promise();
return res.Location;
Run Code Online (Sandbox Code Playgroud)
现在我们要升级到aws-sdkv3,新的文件上传方式如下所示
const command = new PutObjectCommand({
Body: body,
Bucket: bucket,
Key: key,
ContentType: contentType,
});
const res = await S3Client.send(command);
Run Code Online (Sandbox Code Playgroud)
不幸的是,res对象现在不包含Location属性。
getSignedUrlSDK功能看起来不太合适,因为它只是生成一个带有到期日期的URL(可能可以将其设置为一些额外的巨大持续时间,但无论如何,我们仍然需要有可能分析URL路径)
对我来说,手动构建 URL 看起来不是一个好主意,也不是一个稳定的解决方案。
我想列出我的公共存储桶中所有文件的对象 URL。我阅读了所有有关 s3 和 s3api 的文档,但找不到我要找的内容。
我不想定义预签名 URL。我想列出文件夹中所有文件的现有 URL。
很抱歉我无法添加代码,但我有一个非常具体的问题,我找不到我的起点。
如果有人帮忙,我将不胜感激。
解决方案: https: //github.com/cagdasdemirer/AWS-S3-URL-Listing
url object command-line-interface amazon-s3 amazon-web-services