You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH将Linux服务器本地文件上传至Amazon S3存储桶

把Linux服务器文件上传到AWS S3的正确方法

你用scp命令是错的——scp是用来和EC2这类远程服务器做文件传输的工具,AWS S3是对象存储服务,不能用scp直接连接。下面是两种靠谱的上传方法:

方法一:使用AWS CLI(官方工具)

  1. 安装AWS CLI
    根据你的Linux发行版执行对应命令:

    • Ubuntu/Debian:
      sudo apt update && sudo apt install awscli
      
    • CentOS/RHEL:
      sudo yum install awscli
      
    • 通用pip安装:
      pip install awscli --user
      
  2. 配置AWS CLI
    运行配置命令,按提示输入你的AWS密钥和区域:

    aws configure
    

    需要输入的信息包括:

    • AWS Access Key ID:拥有S3上传权限的IAM用户密钥ID
    • AWS Secret Access Key:对应密钥的Secret
    • Default region name:比如us-east-1(根据你的存储桶区域填写)
    • Default output format:可选,比如json
  3. 上传文件

    • 上传单个文件到存储桶根目录:
      aws s3 cp MY_FILE_TO_BE_UPLOADED.txt s3://你的存储桶名称/
      
    • 上传整个目录(递归上传):
      aws s3 cp ./要上传的目录 s3://你的存储桶名称/目标目录名/ --recursive
      

方法二:使用s3cmd(第三方工具)

  1. 安装s3cmd

    • Ubuntu/Debian:
      sudo apt install s3cmd
      
    • CentOS/RHEL:
      sudo yum install s3cmd
      
  2. 配置s3cmd
    运行配置向导完成设置:

    s3cmd --configure
    

    同样需要输入AWS Access Key、Secret Key,以及存储桶区域等信息,完成后可以用s3cmd ls验证是否能访问存储桶。

  3. 上传文件

    • 单个文件上传:
      s3cmd put MY_FILE_TO_BE_UPLOADED.txt s3://你的存储桶名称/
      
    • 目录递归上传:
      s3cmd put -r ./要上传的目录 s3://你的存储桶名称/目标目录名/
      

额外说明

你手里的.pem证书是用来SSH连接EC2实例的,上传S3不需要用到它。如果你的Linux服务器本身是AWS EC2实例,还可以给实例附加带S3上传权限的IAM角色,这样不需要配置Access Key,直接就能执行上述上传命令。

内容的提问来源于stack exchange,提问作者kdjoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:55:15