java - 为 s3 中的照片生成独特且不可预测的路径

标签 java amazon-s3

我想使用s3公共(public)存储桶来存储照片。但如果我将照片路径命名为 ${userId}...。那么我认为其他用户将能够轻松地暴力破解此类 URL 并为其他用户加载照片。有什么方法可以避免这种情况吗?我想我需要以某种方式随机化 URL。Facebook 或其他社交网络是如何做到这一点的?

最佳答案

不确定我是否正确理解您的要求,但是 this可能是你的方向。

由于默认情况下所有对象都是私有(private)的,因此基本上您会生成一个预签名 URL 并与目标用户共享,以便他们在规定时间内下载对象

All objects by default are private. Only the object owner has permission to access these objects. However, the object owner can optionally share objects with others by creating a pre-signed URL, using their own security credentials, to grant time-limited permission to download the objects.

如果您只想了解S3命名约定的最佳实践是什么,可以引用this全面了解它。简而言之,您可以尝试尽可能随机地创建名称,也许名称以 ss-mm-hh-FileName 开头?

关于java - 为 s3 中的照片生成独特且不可预测的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47532864/

相关文章:

javax.servlet.HttpServletRequest.getContentLength() 仅返回 int

python-2.7 - 如何使用 python 的 boto 库仅从 Amazon S3 中删除对象而不删除包含该对象的子文件夹

amazon-s3 - S3 Amazon C#(SOAP 与 REST)

java - 目录轮询的最佳实践

java - Chromium WebView 不存在

java - 使用 Java SE 的嵌入式 SQL Firebird 批量更新 OutOfMemoryError

java - 查找后无法使用数据源

amazon-s3 - 为大于 5GB 的文件计算 Amazon-S3 Etag 的算法是什么?

linux - 安装 s3 存储桶后无法查看文件夹详细信息

amazon-web-services - 为什么我通过 CLI 创建的 Elastic Beanstalk 应用程序没有显示在在线 AWS Elastic Beanstalk 控制台上?