当前位置: 首页 > 知识库问答 >
问题:

我试图编写S3.Bash脚本,以便能够传递Bucket名称和其中的对象,以便能够在本地下载

郎飞航
2023-03-14

使用这种格式,我需要编写一个bash脚本,其中我可以将Bucketname和FilesNames作为文本文件传递,它将作为BucketName1/File1,File2运行它..文件存储桶名称1/文件1,文件2....FileN

下面是我写的。但是我没有得到所需的输出。

#!/bin/bash
BucketName=$1
FileName=$2
while IFS= read -r FileName
do
aws s3 cp s3://${BucketName}/${FileName} .
done

共有1个答案

锺离嘉茂
2023-03-14

如果第二个参数指向包含要下载的文件列表的文件,那么应该执行以下操作:

#!/bin/bash
BucketName=$1
FileName=$2
while IFS= read -r file;
#while IFS= read -r FileName
do
aws s3 cp s3://$BucketName/$file .
done < $FileName

其中第二个参数是如下文件:

file1.csv
file2.csv
file3.csv

输出:

$ bash s3bash.sh mybucket s3files.txt
download: s3://mybucket/file1.csv to ./file1.csv         
download: s3://mybucket/file2.csv to ./file2.csv         
download: s3://mybucket/file3.csv to ./file3.csv         

如果您将文件列表作为分隔字符串而不是文件传递,请检查以下答案:https://stackoverflow.com/a/27703327/5535604

 类似资料:
  • 你好StackOverflow众神/常客/用户! 我目前正在为服务器上运行的两个应用程序开发一个日志系统。 下面是上下文: null null null 我希望在使用journalctl(systemd-journal)对dev1进行ssh时能够读取每个服务的日志。 如下所示: 因此,我在dev2上添加了: 并在dev1上添加了: 在这一点上,没有问题,我在journalctl中获得了: 使用特定

  • 问题内容: 我想知道,是否可以创建对象池?这样我就可以从池中取出一个对象,一旦完成工作,就可以将其放入池中。 问题答案: 我想知道,是否可以创建对象池?这样我就可以从池中取出一个对象,一旦完成工作,就可以将其放入池中。 有可能。如果新对象的构建成本很高(例如建立数据库连接),或者由于其他原因GC带宽太高(在Android领域通常会出现问题),则可以在许多情况下看到性能提高。 以下是一些可用于实现池

  • HTTP/REST-需要对代码/token/etc进行身份验证,以便将数据传递到keyvault,以便keyvault将使用密钥库中的密钥对数据进行签名。 Azure有很多文档介绍如何注册我的应用程序,在密钥库中为它创建凭据,然后通过OATH2对它进行身份验证(第一步是通过REST获得代码(然后是令牌?)),我一直被重定向登录。 我是不是漏掉了什么?我希望我的python脚本在无人值守的情况下运行

  • 这里我有一个条件,假设一个用户通过调用API登录。并且响应包含用户的详细信息。我们是否可以将用户的详细信息保存为一个对象,并且可以全局访问?下面是我如何使用ObjectMapper调用模型类的api: } 从我的社交档案来看, 有些解决方案可能使用UserDefaults,但是使用9个UserDefaults来保存我们从这个响应中得到的9个键是不实际的。有什么建议的方法,我们可以这样做,当用户登录

  • 我正在尝试单元测试一个参数为异常的函数。但是,似乎因为函数只抛出异常而不返回,所以我不能仅仅提供一个会抛出异常的函数和参数。 我该怎么处理这个?

  • 目前,我设置了一个S3 bucket,其URL为: 我想要做的是从以下位置加载这个bucket中的文件: 如果我要重命名bucket,我是否首先需要“启用网站托管”才能重命名它? 如果我要重命名我的bucket,用以前的bucket名称引用的文件会发生什么?