S3 ( ls 명령에 지정된대로)에서 경로를 사용하고 모든 파일 객체의 내용을 .NET Framework에 덤프 하는 bash 스크립트를 시작하고 있습니다 stdout
. 본질적 cat /path/to/files/*
으로 S3를 제외하고 복제 하고 싶습니다 s3cat '/bucket/path/to/files/*'
. 옵션을 보는 첫 번째 경향은 cp
명령을 임시 파일 에 사용하는 것 cat
입니다.
누구든지 이것을 시도했거나 비슷한 것을 시도했거나 이미 찾지 못하는 명령이 있습니까?
답변
모든 파일 객체의 내용을 stdout에 덤프합니다.
명령의 -
대상 을 통과하면이를 수행 할 수 있습니다 aws s3 cp
. 예 : $ aws s3 cp s3://mybucket/stream.txt -
.
당신이하려는 것은 이런 것입니까? ::
#!/bin/bash
BUCKET=YOUR-BUCKET-NAME
for key in `aws s3api list-objects --bucket $BUCKET --prefix bucket/path/to/files/ | jq -r '.Contents[].Key'`
do
echo $key
aws s3 cp s3://$BUCKET/$key - | md5sum
done
답변
“-“로의 복사를 지원하지 않는 AWS CLI 버전을 사용하는 경우 / dev / stdout을 사용할 수도 있습니다.
$ aws s3 cp --quiet s3://mybucket/stream.txt /dev/stdout
--quiet
다음과 같은 요약 줄이 출력에 추가되지 않도록 플래그를 지정할 수도 있습니다 .
다운로드 : s3 : //mybucket/stream.txt to ../../dev/stdout
답변
s3streamcat을 사용해 볼 수 있으며 bzip, gzip 및 xz 형식도 지원합니다.
설치
sudo pip install s3streamcat
용법:
s3streamcat s3://bucketname/dir/file_path
s3streamcat s3://bucketname/dir/file_path | more
s3streamcat s3://bucketname/dir/file_path | grep something
답변
답변
BASH를 사용하여이 작업을 수행하려면 AWS 명령 줄 인터페이스 (CLI) 와 같은 외부 앱을 호출해야합니다 . CAT에 해당하는 파일이 없으므로 파일을 로컬로 복사 한 다음 CAT로 복사해야합니다.
또는 Python, PHP, Java와 같은 언어로 제공되는 AWS SDK를 직접 호출하는 앱을 사용 / 작성할 수 있습니다. SDK를 사용하면 파일 내용을 메모리에서 검색 한 다음 stdout으로 보낼 수 있습니다.
답변
