无法 cp 或与 s3 同步,但我可以 ls

Cannot cp or sync with s3 but I can ls

我正在处理一个动作工作流,想从 s3 下载一个文件。我们的 s3 通过 IBM 云和 seems to have some nuances around usage 例如必须在调用 aws 客户端的命令和相应的 aws 命令之间添加 --endpoint-url {endpoint},例如aws --endpoint-url {endpoint} s3 ls

以下是我的 workflow.yml 文件中的相关步骤:

jobs:
  retreive-model-s3:
    runs-on: ubuntu-latest
    steps:
      - name: checkout current repo
        uses: actions/checkout@master
      - name: make dir to sync with s3
        run: mkdir models
      - name: s3
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
          AWS_S3_ENDPOINT: ${{ secrets.AWS_S3_ENDPOINT }}
          AWS_REGION: 'us-south'
        run: |
          aws --endpoint-url ${{ secrets.AWS_S3_ENDPOINT }} s3 ls ${{ secrets.AWS_S3_BUCKET }}
          aws --endpoint-url ${{ secrets.AWS_S3_ENDPOINT }} s3 cp ${{ secrets.AWS_S3_BUCKET }}/regression_model_full.rds models/regression_model_full.rds
      - name: dir after

到此为止:

aws --endpoint-url ${{ secrets.AWS_S3_ENDPOINT }} s3 ls ${{ secrets.AWS_S3_BUCKET }}

在操作控制台输出中,我能够看到 ${{ secrets.AWS_S3_BUCKET }} 中的文件,包括一个名为 regression_model_full.rds.

的文件

在下一行中,我尝试将其下载到 运行ner:

aws --endpoint-url ${{ secrets.AWS_S3_ENDPOINT }} s3 cp ${{ secrets.AWS_S3_BUCKET }}/regression_model_full.rds models/regression_model_full.rds

但这会导致错误:

usage: aws s3 cp <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
Error: Invalid argument type
Error: Process completed with exit code 252.

鉴于我能够成功 运行 s3 的 ls 命令,我确信我与 s3 的连接是可靠的。但是为什么我不能使用cp下载呢?我的语法不正确吗?

请检查 addis s3: ''' aws --endpoint-url ${{ secrets.[=14th=] }} s3 cp s3://${{ secrets.AWS_S3_BUCKET }}/regression_model_full.rds models/regression_model_full.rds '''