当前位置: 首页 > news >正文

如何使用 AWS CLI 为私有 AWS S3 存储桶中的对象创建预签名 URL

本文档的目的是介绍使用 AWS CLI 为 s3 对象创建预签名 URL 的步骤。欢迎来到雲闪世界。

快速事实

  • “如果您使用预签名 URL,则无需将存储桶公开,事实上,最好不要这样做。” — AWS Support

背景

  • Amazon Web Services 简单存储服务 (AWS S3) 是 AWS 的服务之一,您可以以低廉的价格存储任何对象(文件)。
  • 当您能够存储大量数据和任何数据时,可能会出现业务用例,以允许外部在一段时间内访问某些数据。

使用案例

  • 示例 1 — 当您的亚马逊包裹到达时,您会收到一张图片作为证明。如果他们愿意,他们可以使用 S3 来存储这些图片,并让这些图片在一定时间后过期
  • 示例 2 — 如果您是一家处理客户数据的企业,并且客户想要自定义数据范围。您可以使用一些 ETL 流程将其提取到对象中并将其上传到 s3。然后,您可以与客户共享此对象的链接。

先决条件

  • 控制台和 CLI 访问现有 AWS 账户
  • S3 服务的权限

免责声明

以下步骤仅用于演示目的 - 不建议用于生产用途

  1. 转到 AWS S3 服务并创建一个存储桶
<span style="background-color:#f2f2f2"><span style="color:#242424">存储桶可以是对象的容器。就像在 PC 世界中一样,文件夹是文件的容器。</span></span>

2. 按照此配置

Bucket 名称命名一个你独有且符合你目的的名称

AWS 区域您的偏好也可能取决于您的应用程序存储在哪个区域

从现有存储桶复制设置保留空白

对象所有权除非另有规定,否则保留默认设置

阻止公共访问设置: 阻止所有公共访问(所有四个子项目符号都应显示为灰色)

存储桶版本控制除非另有规定,否则保留其默认设置。

<span style="background-color:#f2f2f2"><span style="color:#242424">存储桶版本控制允许您跟踪同一对象的多个版本。在某些情况下,您可能会上传同一对象,如果启用此设置 - 它将每次作为新版本上传。然后,您以后就可以查看和检索任何版本。</span></span>

标签添加对您和您的公司有意义的标签。所有资源最好使用标签模板。

默认加密: 单击“启用”并选择您的加密类型。常见选择 - Amazon S3 托管密钥 (SSE-S3)

高级设置: 除非另有规定,否则保留其默认设置。

3.单击创建存储桶

4. 验证你的对象是否已创建

5. 将随机对象从本地计算机拖放到存储桶,然后单击上传。

6. 对象上传后,需要为该对象创建一个预签名的 URL 链接,以便与其他人共享此文件

7.假设您已将 AWS CLI 配置为具有您创建的 AWS S3 存储桶的正确账户。执行以下命令

<span style="background-color:#f2f2f2"><span style="color:#242424">aws s3 presign --endpoint-url <a data-cke-saved-href="https://s3.us-east-1.amazonaws.com/" href="https://s3.us-east-1.amazonaws.com/" class="af ui">https://s3.{region}.amazonaws.com</a> s3://{bucketname}/{object} --region {region} --expires-in {seconds}</span></span>

我执行的命令

<span style="background-color:#f2f2f2"><span style="color:#242424">aws s3 presign --endpoint-url <a data-cke-saved-href="https://s3.us-east-1.amazonaws.com/" href="https://s3.us-east-1.amazonaws.com/" class="af ui">https://s3.us-east-1.amazonaws.com</a> s3://sai-pre-signed-url-test/Dance.mov --region us-east-1 --expires-in 86400</span></span>

8.输出应类似于此

9. 复制命令行的输出并将其粘贴到浏览器中(以 https://s3.us-east-1 开头)。此链接将根据您设置的时间过期。但是,对象不会被删除。

感谢关注雲闪世界。(Aws解决方案架构师vs开发人员&GCP解决方案架构师vs开发人员)

下一步

  • 您可能希望使用生命周期策略来删除对象
  • 使用最佳实践来保护存储桶访问——查看存储桶策略
  • 可能有第三方工具可以缩短你的 S3 预签名链接

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 软件架构设计——能力供应商模式
  • Base CTF [第2周]UPX的
  • Claude 与 ChatGPT:哪个更适合学术写作,深入对比分析
  • ARM-Cortex-M架构:1、STM32函数参数传递
  • 团队管理之敏捷开发
  • Linux文件目录系统
  • 【c语法】##__VA_ARGS__与__VA_ARGS__
  • 深度学习--负采样技术及其扩展详解
  • redisj集群之哨兵模式
  • LeetCode面试题Day16|LC56 合并区间、LC57 插入区间
  • 浅谈Java SpringBoot和Spring区别
  • 【Linux】05.Linux 下的编辑器——vim
  • C语言 | Leetcode C语言题解之第373题查找和最小的K对数字
  • 学懂C++(四十五 ):深入详解C++ STL 容器:从基础到进阶
  • 深度学习——分布式训练
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • eclipse的离线汉化
  • flask接收请求并推入栈
  • HashMap剖析之内部结构
  • linux安装openssl、swoole等扩展的具体步骤
  • nodejs实现webservice问题总结
  • REST架构的思考
  • scala基础语法(二)
  • SSH 免密登录
  • 阿里云购买磁盘后挂载
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 关于 Cirru Editor 存储格式
  • 记一次用 NodeJs 实现模拟登录的思路
  • 力扣(LeetCode)357
  • 码农张的Bug人生 - 初来乍到
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 排序算法学习笔记
  • 批量截取pdf文件
  • 前端_面试
  • 微信小程序实战练习(仿五洲到家微信版)
  • 一个JAVA程序员成长之路分享
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $$$$GB2312-80区位编码表$$$$
  • $refs 、$nextTic、动态组件、name的使用
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (3)选择元素——(17)练习(Exercises)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (70min)字节暑假实习二面(已挂)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (含笔试题)深度解析数据在内存中的存储
  • (九十四)函数和二维数组
  • (十)T检验-第一部分
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)事件系统