Amazon s3 列出AmazonS3存储桶中所有文件的快速方法?
我有一个AmazonS3存储桶,里面有成千上万个文件名。获取列出bucket中所有文件名的文本文件的最简单方法是什么?我建议使用。然后是一个快速:Amazon s3 列出AmazonS3存储桶中所有文件的快速方法?,amazon-s3,Amazon S3,我有一个AmazonS3存储桶,里面有成千上万个文件名。获取列出bucket中所有文件名的文本文件的最简单方法是什么?我建议使用。然后是一个快速: 从boto.s3.connection导入S3Connection conn=S3Connection('access-key','secret-access-key')) bucket=conn.get\u bucket(‘bucket’) 对于bucket.list()中的键: 打印键.名称.编码('utf-8') 将其另存为list.py,打
从boto.s3.connection导入S3Connection
conn=S3Connection('access-key','secret-access-key'))
bucket=conn.get\u bucket(‘bucket’)
对于bucket.list()中的键:
打印键.名称.编码('utf-8')
将其另存为list.py,打开终端,然后运行:
$ python list.py > results.txt
在zach之后,我也会推荐,但我需要对他的代码稍加修改:
conn = boto.connect_s3('access-key', 'secret'key')
bucket = conn.lookup('bucket-name')
for key in bucket:
print key.name
publicstaticdictionary列表bucketsbycreationdate(stringaccesskey,stringsecretkey)
{
返回AWSClientFactory.CreateAmazonS3Client(AccessKey,
SecretKey).ListBucket().Bucket.ToDictionary(s3Bucket=>s3Bucket.BucketName,
s3Bucket=>DateTime.Parse(s3Bucket.CreationDate));
}
对于这种事情来说是无价的
$s3cmd ls-r s3://yourbucket/|awk'{print$4}'>bucket中的对象
请小心,amazon列表只返回1000个文件。如果要迭代所有文件,必须使用标记对结果进行分页:
在ruby中使用
bucket\u name='yourBucket'
marker=“”
AWS::S3::Base.build\u连接!(
:access\u key\u id=>your\u access\u key\u id',
:secret\u access\u key=>“您的\u secret\u access\u key”
)
环道
objects=Bucket.objects(Bucket\u name,:marker=>marker,:max\u keys=>1000)
如果objects.size==0,则中断
marker=objects.last.key
对象。每个do | obj|
放置“#{obj.key}”
结束
结束
结束
希望这有帮助,vincent函数showUploads(){
如果(!class_存在('S3'))需要_一次'S3.php';
//AWS访问信息
如果(!defined('awsAccessKey'))定义('awsAccessKey','234567665464tg');
如果(!defined('awsSecretKey'))定义('awsSecretKey','dfshgffghdgfhrt463457');
$bucketName='my_bucket1234';
$s3=新的s3(awsAccessKey、awsSecretKey);
$contents=$s3->getBucket($bucketName);
echo“
存储桶中的文件列表:{$bucketName}
”;
$n=1;
foreach($p=>v的内容):
echo$p.“
”;
$n++;
endforeach;
}
AWS CLI
文件
AWS最近发布了他们的命令行工具。这与boto非常相似,可以使用sudo easy\u install awscli
或sudo pip install awscli
一旦安装完毕,就可以简单地运行
aws s3 ls
这将显示所有可用的桶
CreationTime Bucket
------------ ------
2013-07-11 17:08:50 mybucket
2013-07-24 14:55:44 mybucket2
然后,您可以查询文件的特定存储桶
命令:
aws s3 ls s3://mybucket
Bucket: mybucket
Prefix:
LastWriteTime Length Name
------------- ------ ----
PRE somePrefix/
2013-07-25 17:06:27 88 test.txt
输出:
aws s3 ls s3://mybucket
Bucket: mybucket
Prefix:
LastWriteTime Length Name
------------- ------ ----
PRE somePrefix/
2013-07-25 17:06:27 88 test.txt
这将显示您的所有文件 对于Scala开发人员,这里是一个递归函数,用于执行完全扫描,并使用官方
import com.amazonaws.services.s3.AmazonS3Client
导入com.amazonaws.services.s3.model.{S3ObjectSummary,ObjectListing,GetObjectRequest}
导入scala.collection.JavaConversions.{collectionAsScalaIterable=>asScala}
defmap[T](s3:AmazonS3Client,bucket:String,prefix:String)(f:(S3ObjectSummary)=>T){
def扫描(acc:List[T],listing:ObjectListing):List[T]={
val summaries=asScala[S3ObjectSummary](listing.getObjectSummaries())
val mapped=(对于(摘要(s.getKey,s.getOwner))
将返回该bucket/前缀中的(key,owner)
元组的完整列表
或
map(s3,“bucket”,“prefix”)(s=>println(s))
正如您通常通过使用awesome在python中编写代码来实现的那样。 该代码返回bucket中的文件列表,并处理缺少bucket的异常
导入boto
连接=双向连接
尝试:
bucket=conn.get\u bucket(,validate=True)
除boto.exception.s3响应错误外,e:
do_something()#存储桶不存在,请选择如何处理它或引发异常
为bucket.list()中的键返回[key.name.encode(“utf-8”)]
不要忘记用您的值替换
$S3=\Aws\S3\S3Client::factory(数组('region'=>$region,);
$iterator=$S3->getIterator('ListObjects',array('Bucket'=>$Bucket));
foreach($iterator作为$obj){
echo$obj['Key'];
}
您可以将上述代码的输出重定向到一个文件中,以获取密钥列表。在Java中,您可以使用ListObjects获取密钥(请参阅)
FileWriter文件编写器;
缓冲写入程序缓冲写入程序;
// [...]
AmazonS3 s3client=新的AmazonS3客户端(新的ProfileCredentialsProvider());
ListObjectsRequest ListObjectsRequest=新建ListObjectsRequest()
.带bucketName(bucketName)
.带前缀(“myprefix”);
对象列表对象列表;
做{
objectListing=s3client.listObjects(listObjectsRequest);
对于(S3ObjectSummary对象摘要:
objectListing.getObjectSummaries()){
//使用缓冲写入器等写入文件
write(objectSummary.getKey());
}
listObjectsRequest.setMarker(objectListing.getNextMarker());
}while(objectListing.isTruncated());
有关更多详细信息,请参见此处-或者,您可以使用Minio客户端aka mc。它是开源的,与AWS S3兼容。它可用于 您所要做的就是运行mcls命令来列出内容 $ mc ls s3/kline/ [2016-04-30 13:20:47 IST] 1.1MiB 1.jpg [2016-04-30 16:03:55 IST] 7.5KiB docker.png [2016-04-30 15:16:17 IST] 50KiB pi.png [2016-05-10 14:34:39 IST] 365KiB upton.pdf $mc ls s3/克/ [2016-04-30 13:20:47 IST]1.1MiB 1.jpg [2016-04-30 16:03:55 IST]7.5KB docker.png [2016-04-30 15:16:17 IST]50KiB pi.png [2016-05-1014:34:39 IST]365KB upton.pdf 注:
- s3:AmazonS3的别名
- kline:AWS S3存储桶名称
- 来自的64位英特尔
- 32位英特尔
- 32位ARM从
aws s3 ls s3://root/folder1/folder2/
aws s3 ls path/to/file
aws s3 ls path/to/file >> save_result.txt
aws s3 ls path/to/file > save_result.txt
# find like file listing for s3 files
aws s3api --profile <<profile-name>> \
--endpoint-url=<<end-point-url>> list-objects \
--bucket <<bucket-name>> --query 'Contents[].{Key: Key}'
-Browse to Folder
-Select All
-Generate Urls
aws s3 ls s3://{bucketname}
example : aws s3 ls s3://testbucket133
aws s3 ls s3://Bucketdirectory/Subdirectory/ | cat >> FileNames.txt
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('name')
for obj in bucket.objects.all():
print(obj.key)
import plumbum as pb
folders = pb.local['aws']('s3', 'ls')
bucket=<bucket_name>
region=<region_name>
awsAccess=<access_key>
awsSecret=<secret_key>
awsRegion="${region}"
baseUrl="s3.${awsRegion}.amazonaws.com"
m_sed() {
if which gsed > /dev/null 2>&1; then
gsed "$@"
else
sed "$@"
fi
}
awsStringSign4() {
kSecret="AWS4$1"
kDate=$(printf '%s' "$2" | openssl dgst -sha256 -hex -mac HMAC -macopt "key:${kSecret}" 2>/dev/null | m_sed 's/^.* //')
kRegion=$(printf '%s' "$3" | openssl dgst -sha256 -hex -mac HMAC -macopt "hexkey:${kDate}" 2>/dev/null | m_sed 's/^.* //')
kService=$(printf '%s' "$4" | openssl dgst -sha256 -hex -mac HMAC -macopt "hexkey:${kRegion}" 2>/dev/null | m_sed 's/^.* //')
kSigning=$(printf 'aws4_request' | openssl dgst -sha256 -hex -mac HMAC -macopt "hexkey:${kService}" 2>/dev/null | m_sed 's/^.* //')
signedString=$(printf '%s' "$5" | openssl dgst -sha256 -hex -mac HMAC -macopt "hexkey:${kSigning}" 2>/dev/null | m_sed 's/^.* //')
printf '%s' "${signedString}"
}
if [ -z "${region}" ]; then
region="${awsRegion}"
fi
# Initialize helper variables
authType='AWS4-HMAC-SHA256'
service="s3"
dateValueS=$(date -u +'%Y%m%d')
dateValueL=$(date -u +'%Y%m%dT%H%M%SZ')
# 0. Hash the file to be uploaded
# 1. Create canonical request
# NOTE: order significant in ${signedHeaders} and ${canonicalRequest}
signedHeaders='host;x-amz-content-sha256;x-amz-date'
canonicalRequest="\
GET
/
host:${bucket}.s3.amazonaws.com
x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date:${dateValueL}
${signedHeaders}
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
# Hash it
canonicalRequestHash=$(printf '%s' "${canonicalRequest}" | openssl dgst -sha256 -hex 2>/dev/null | m_sed 's/^.* //')
# 2. Create string to sign
stringToSign="\
${authType}
${dateValueL}
${dateValueS}/${region}/${service}/aws4_request
${canonicalRequestHash}"
# 3. Sign the string
signature=$(awsStringSign4 "${awsSecret}" "${dateValueS}" "${region}" "${service}" "${stringToSign}")
# Upload
curl -g -k "https://${baseUrl}/${bucket}" \
-H "x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" \
-H "x-amz-Date: ${dateValueL}" \
-H "Authorization: ${authType} Credential=${awsAccess}/${dateValueS}/${region}/${service}/aws4_request,SignedHeaders=${signedHeaders},Signature=${signature}"
pip3 install awscli
aws configure
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json (or just press enter)
aws s3 ls
aws s3 ls > output.txt
aws s3 ls bucket-name --recursive
aws s3 ls bucket-name --recursive > file_Structure.txt
import os
import boto3
from botocore.exceptions import ClientError
client = boto3.client('s3')
bucket = client.list_objects(Bucket=BUCKET_NAME)
for content in bucket["Contents"]:
key = content["Key"]