source

AWS S3 CLI를 사용하여 BASH에서 stdout으로 파일을 덤프하는 방법은 무엇입니까?

manycodes 2023. 4. 26. 23:28
반응형

AWS S3 CLI를 사용하여 BASH에서 stdout으로 파일을 덤프하는 방법은 무엇입니까?

(ls 명령에 지정된 대로) S3의 경로를 사용하여 모든 파일 개체의 내용을 덤프하는 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으로 보낼 수 있습니다.

아하!

https://pypi.python.org/pypi/s3cat/1.0.8

저는 길이 요건을 충족하기 위해 더 많은 글자를 쓰고 있습니다.

언급URL : https://stackoverflow.com/questions/28330907/how-to-use-aws-s3-cli-to-dump-files-to-stdout-in-bash

반응형