AWS S3 JavaScript SDK(v3)常用操作
安装 aws s3 sdk
npm install @aws-sdk/client-s3
配置
创建 ~/.aws/credentials 文件,添加以下配置项:
[default]
aws_access_key_id=<...>
aws_secret_access_key=<...>
region=<...>
S3 SDK常用桶操作
获取桶列表
import {S3Client,Bucket,paginateListBuckets,
} from "@aws-sdk/client-s3";async function listBuckets() {const client = new S3Client({});try {const buckets: Bucket[] = [];for await (const page of paginateListBuckets({ client }, {})) {if (page.Buckets) {buckets.push(...page.Buckets);}}console.log("Buckets: ", buckets);} catch (error) {console.error(error);}
}
创建桶
import {S3Client,Bucket,CreateBucketCommand,waitUntilBucketExists,
} from "@aws-sdk/client-s3";async function createBucket(bucket: string) {const client = new S3Client({});try {const { Location } = await client.send(new CreateBucketCommand({Bucket: bucket,}));await waitUntilBucketExists({ client, maxWaitTime: 1000 }, { Bucket: bucket });console.log(`Bucket created with location ${Location}`);} catch (error) {console.error(error);}
}
删除桶
import {S3Client,Bucket,DeleteBucketCommand,waitUntilBucketExists,
} from "@aws-sdk/client-s3";async function deleteBucket(bucket: string) {const client = new S3Client({});try {await client.send(new DeleteBucketCommand({Bucket: bucket,}));console.log("Bucket was deleted.");} catch (error) {console.error(error);}
}
S3 SDK常用对象操作
获取对象列表
import {S3Client,Bucket,paginateListObjectsV2,
} from "@aws-sdk/client-s3";async function listObjects(bucket: string) {const client = new S3Client({});try {const objects = [];const paginator = paginateListObjectsV2({ client, pageSize: 2 }, { Bucket: bucket });for await (const page of paginator) {if (page.Contents) {objects.push(page.Contents.map((o) => o.Key));}}console.log("Objects: ", objects);} catch (error) {console.error(error);}
}
获取对象
import {S3Client,Bucket,GetObjectCommand,
} from "@aws-sdk/client-s3";async function getObject(bucket: string, key: string) {const client = new S3Client({});try {const response = await client.send(new GetObjectCommand({Bucket: bucket,Key: key,}));if (response.Body) {console.log(await response.Body.transformToString());}} catch (error) {console.error(error);}
}
上传对象
import {S3Client,Bucket,PutObjectCommand,
} from "@aws-sdk/client-s3";
import { readFile } from "node:fs/promises";async function putObject(bucket: string, key: string, filePath: string) {const client = new S3Client({});try {const response = await client.send(new PutObjectCommand({Bucket: bucket,Key: key,Body: await readFile(filePath),}));console.log(response);} catch (error) {console.error(error);}
}
删除对象
import {S3Client,Bucket,DeleteObjectCommand,
} from "@aws-sdk/client-s3";async function deleteObject(bucket: string, key: string) {const client = new S3Client({});try {const response = await client.send(new DeleteObjectCommand({Bucket: bucket,Key: key,}));console.log(response);} catch (error) {console.error(error);}
}
相关文章:
AWS S3 JavaScript SDK(v3)常用操作
安装 aws s3 sdk npm install aws-sdk/client-s3配置 创建 ~/.aws/credentials 文件,添加以下配置项: [default] aws_access_key_id<...> aws_secret_access_key<...> region<...>S3 SDK常用桶操作 获取桶列表 import {S3Client,…...
数据结构——图的基本操作
文章目录 1.图2.图的结构体定义3.图的初始化4.添加顶点、删除顶点4.1添加顶点4.2删除顶点 5.添加边、删除边5.1添加边5.2删除边 6.打印图7.main函数 在生命旅途中,我们就像是一个个节点,被无数看不见的边相连。每一次的相识与相离,都在这张巨…...
掌握全球速递:在表格中高效利用国际快递公式查询快递
在当今全球化的商业环境中,国际快递服务已成为连接世界各地企业与个人的重要桥梁。无论是跨国企业间的货物运输,还是个人用户的海外购物需求,国际快递都扮演着不可或缺的角色。然而如何快速准确地获取大量国际快递的物流轨迹成为了一个挑战。…...
【MySQL系列】字符集设置
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Vue2进阶之Vue3高级用法
Vue3高级用法 响应式Vue2:Object.definePropertyObject.definePropertythis.$set设置响应式 Vue3:Proxy composition APIVue2 option API和Vue3 compositionAPIreactive和shallowReactivereadonly效果toRefs效果 生命周期main.jsindex.htmlLifeCycle.vue…...
基于微信的追星小程序+ssm(lw+演示+源码+运行)
摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,追星小程序被用户普遍使用,为方便用户能够可以…...
【51单片机】串口通信原理 + 使用
学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 串口硬件电路UART串口相关寄存器 编码单片机通过串口发送数据电脑通过串口发送数据控制LED灯 串口 串口是一种应用十分广泛的通讯接…...
优选算法第五讲:位运算模块
优选算法第五讲:位运算模块 1.常见的位运算总结2.判断字符是否唯一3.丢失的数字4.两整数之和5.只出现一次的数字II6.消失的两个数字 1.常见的位运算总结 2.判断字符是否唯一 链接: link class Solution { public:bool isUnique(string astr) {if(astr.size() >…...
【07】Maven项目多环境打包配置
(1)Web项目使用Maven进行多模块划分开发之后,面临一个问题,即如何加载不同环境的配置文件打包发布到不同的环境中? (2)不同的环境有开发环境、测试环境、线上生产环境等。 (3&#x…...
嵌入式Linux入门具备:C语言基础与基本驱动学习(2):Linux GIibc IO基础
标准IO 标准 I/O 虽然是对文件 I/O 进行了封装,但事实上并不仅仅只是如此,标准 I/O 会处理很多细节,譬如分配 stdio 缓冲区、以优化的块长度执行 I/O 等,这些处理使用户不必担心如何选择使用正确的块长度。I/O 库函数是构建于文件…...
【微服务】Docker 容器化
一、初识Docker 1. 为什么需要 Docker 大型项目组件较多,运行环境也较为复杂,部署时会遇到一些问题: 依赖关系复杂,容易出现兼容性的问题开发、测试、生产环境有差异 Docker 如何解决依赖的兼容问题 将应用的Libs(…...
[前端] 为网站侧边栏添加搜索引擎模块
前言 最近想给我的个人网站侧边栏添加一个搜索引擎模块,可以引导用户帮助本站SEO优化(让用户可以通过点击搜索按钮完成一次对本人网站的搜索,从而实现对网站的搜索引擎优化)。 最开始,我只是想实现一个简单的百度搜索…...
解决CORS (跨源资源共享) 错误
问题引入 前端代码 <template><div id"hello-vue" class"demo">{{ message }}</div><el-button type"primary" click"handleClick">我是一个按钮</el-button></template><script setup>//加…...
Redis 实现分布式缓存
一、引言 在当今互联网时代,随着业务的不断发展和用户量的持续增长,系统的性能和可扩展性成为了关键挑战。分布式缓存作为一种重要的技术手段,能够有效地缓解数据库压力、提高系统响应速度、增强系统的可扩展性。Redis 作为一种高性能的内存数…...
Chrome与火狐哪个浏览器的移动版本更流畅
在当今的数字化时代,移动设备已经成为我们生活中不可或缺的一部分。而浏览器作为我们访问互联网的重要工具,其性能和用户体验直接影响到我们的使用感受。本文将对比Chrome和火狐(Firefox)两款主流浏览器的移动版本,探讨…...
7篇Python爬虫实例,直接代码可运行,全网最全,注释超详细(适合收藏)——2、爬取图片信息。
7篇Python爬虫实例,可直接运行,适合收藏 python爬虫7篇实例,分七个文章进行发布;第二篇:爬取图片信息。 爬取图片信息,并将每张图片都下载下来。 爬虫主要三部分: 1、获取数据 2、数据解析 3、…...
25.停车场管理系统(基于web的Java项目)
目录 1.系统的受众说明 2.相关技术与方法 3.系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 需求分析 3.2.1 系统功能描述 3.2.2 用例图分析 4. 系统设计 4.1 系统类分析 5. 系统详细设计与实现 5.1 用户登录 5.2 系统信…...
展览搭建公司怎么跟展会主办打好交道
与展会主办打好交道的重要性 首先,我们得明白,展览搭建公司为何要跟展会主办打交道。简单地说,展会主办拥有大量的参展商信息。这些参展商是展览搭建公司潜在的客户群体,与主办打好交道,就等于拿到了通向这些客户的 “…...
软件开发方法
软件开发方法是一种用于指导软件开发过程的系统性方法,它涵盖了从需求分析、设计、编码、测试到维护的整个软件生命周期。软件开发方法通常包括一系列的步骤、技术和工具,以确保软件的质量、可维护性和可扩展性。 常见的软件开发方法有瀑布模型、敏捷开发、螺旋模型等。这些…...
「Mac畅玩鸿蒙与硬件24」UI互动应用篇1 - 灯光控制小项目
本篇将带领你实现一个互动性十足的灯光控制小项目,用户可以通过点击按钮来控制灯光的开关。该项目将涉及状态管理、动态图片加载以及按钮交互,是学习鸿蒙应用开发的重要基础。 关键词 UI互动应用状态管理动态图片加载用户交互 一、功能说明 在这个灯光…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...
