AWS S3上传下载

目录

1. 本地(Ubuntu)安装AWS客户端工具

1.1 检查Python依赖        

1.2.  使用pip安装AWS CLI:

1.3.  检查文件版本

2. 配置AWS client

3. 上传下载

3.1. 上传

3.2. 下载

3.3. 查看目标目录的文件(文件夹)数量

4. 参考文章


1. 本地(Ubuntu)安装AWS客户端工具

在Ubuntu中安装AWS CLI (Command Line Interface),可以按照以下步骤进行:

1.1 检查Python依赖        

        首先,你需要确保已经安装了 Python 和 pip,因为AWS CLI需要它们。可以在终端中使用以下命令检查你是否已经安装它们:

python --version
pip --version

如果没有安装,你可以使用下列命令进行安装:

sudo apt-get update
sudo apt-get install python3-pip

1.2.  使用pip安装AWS CLI:

pip install awscli --upgrade --user

1.3.  检查文件版本

确认AWS CLI是否正确安装和运行。在终端中输入下面的命令:

aws --version

2. 配置AWS client

        如果AWS CLI正确安装,你将看到一些版本信息。之后,你需要使用AWS的访问密钥和访问密钥ID配置AWS CLI,使用如下命令进行配置:

aws configure

        然后,按照提示输入你的AWS访问密钥ID,访问密钥,默认的AWS区域以及默认的输出格式。进行这些设置后,你便可以开始使用AWS CLI了。整个配置过程可能看起来如下所示:

AWS Access Key ID [None]: YOUR_ACCESS_KEY
AWS Secret Access Key [None]: YOUR_SECRET_KEY
Default region name [None]: YOUR_PREFERRED_REGION
Default output format [None]: json

请将它们替换为你自己的AWS密钥,区域,和输出格式。

3. 上传下载

3.1. 上传

# 进入目标目录
cd $your_attachment_location_path

# 将当前目录下的内容上传到目标目录(会忽略目录下的文件)
aws s3 cp ./ s3://${your_bucket_name}/${sub_path}

# 将当前目录下的内容上传到目标目录(包含目录下的文件,迭代上传)
aws s3 cp ./ s3://${your_bucket_name}/${sub_path} --recursive

# 将当前目录下的内容上传到目标目录(包含目录下的文件,迭代上传),除开special文件(目录也是一样)
aws s3 cp ./ s3://${your_bucket_name}/${sub_path} --recursive --exclude "specical/*"

3.2. 下载

# 进入目标目录
cd $your_attachment_location_path

# 下载(若要特定目录,只需要将./改成${target_download_directory})
aws s3 cp s3://${your_bucket_name}/${sub_path} ./

# 下载特定前缀(001abc...)的文件
aws s3 sync s3://${your_bucket_name}/${sub_path} ./ --exclude "*" --include "001abc*/*"

注意:

        aws s3 cp 和 aws s3 sync 是 AWS 命令行界面的两个命令,主要用于Amazon S3服务。这两个命令在功能上是有所不同的。

  • aws s3 cp

        此命令用于从一个位置复制文件到另一个位置。这可以在本地文件系统和S3桶之间,也可以在两个S3桶之间。这个命令会覆盖目标位置的任何现有文件。例如,如果你正在将文件从一个桶复制到另一个桶,如果目标桶中已经有一个与源桶中具有相同名称的文件,那么它将被覆盖。

  • aws s3 sync

        此命令则更加智能,它只会复制修改过的文件。也就是说,它会比较源桶和目标桶(或文件系统),只有当源桶中的文件比目标桶中的文件“新”(修改日期更晚或者目标桶中没有相应文件)时,它才会复制该文件。这意味着它可以用来同步两个存桶的内容,使目标存桶的内容与源存桶中的内容保持一致。

总的来说,aws s3 cp 是一个简单的复制操作,而 aws s3 sync 则会确保目标和源之间的文件保持同步状态。

3.3. 查看目标目录的文件(文件夹)数量

# 查看目标存储桶下的文件数量
aws s3 ls s3://${your_bucket_name}/${sub_path} --recursive | wc -l

4. 参考文章

如何利用AWS CLI进行S3的上传下载 | 钢钢更新

ChatGPT

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot项目中集成AWS SDK,可以实现与AWS S3的连接并实现文件的上传和下载功能。 首先,需要在pom.xml文件中添加AWS SDK的依赖项,并确保version保持一致。在dependencyManagement中添加以下代码: ``` <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.0.0-preview-12</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ``` 然后,在dependencies中添加以下代码: ``` <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <version>2.0.0-preview-12</version> </dependency> ``` 接下来,在application.properties文件中进行配置,包括AWS的访问密钥、S3存储桶名称、存储桶所在地区以及上传文件的路径: ``` aws.access_key_id=your access key aws.secret_access_key=your secret access key aws.s3.bucket=your bucket name aws.s3.region=cn-northwest-1 aws.s3.filename=/666666/test123/photo.zip ``` 在文件上传和下载的方法中,需要注意传递给方法的key参数是指存储在AWS S3上的文件名。如果key参数是路径字符串格式,S3服务器会自动创建对应路径的文件夹。例如,如果在application.properties中设置了aws.s3.filename=/666666/test123/photo.zip,那么key参数为/666666/test123/photo.zip,S3存储桶下就会有一个名为/666666/test123/photo.zip的文件,即上传的文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能](https://blog.csdn.net/sinat_27428951/article/details/89675587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值