전역 명령줄 옵션

설명

gsutil은 최상위 gsutil 명령어와 개별 하위 명령어(예: cp, rm)에 별도의 옵션을 지원합니다. 최상위 옵션은 여러 명령어에 적용되는 gsutil의 동작을 제어합니다. 예를 들어 다음과 명령어가 있습니다.

gsutil -m cp -p file gs://bucket/obj

이 명령어에서 -m 옵션은 gsutil에 적용되는 반면 -p 옵션은 cp 하위 명령어에 적용됩니다.

옵션

-D

예외 스택 트레이스를 포함하여 지원 요청을 게시할 때 필요한 HTTP 요청/헤더와 추가 디버그 정보를 표시합니다.

-DD

-D와 HTTP 업스트림 페이로드를 더한 것과 같습니다.

-h

특정 HTTP 헤더를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

gsutil -h "Cache-Control:public,max-age=3600" \
       -h "Content-Type:text/html" cp ...

셸에서 별도의 인수로 분할되지 않도록 공백이 포함된 헤더/값(예: 'Content-Disposition: attachment; filename=filename.ext')을 따옴표로 묶어야 합니다.

다음 헤더는 객체 메타데이터로 저장되고 나중에 객체 요청에서 사용됩니다.

Cache-Control
Content-Disposition
Content-Encoding
Content-Language
Content-Type

다음 헤더는 데이터 무결성을 확인하는 데 사용됩니다.

Content-MD5

gsutil은 다음과 같은 일치하는 Cloud Storage 제공업체 프리픽스가 있는 커스텀 메타데이터 헤더도 지원합니다.

x-goog-meta-

gs:// URL의 경우 Cache Control 헤더는 사용 중인 API에만 적용됩니다. XML API는 cache control 헤더를 허용하며 객체 다운로드 중에 반환합니다. JSON API는 public, private, no-cache, max-age, no-transform cache control 헤더만 준수합니다.

업로드된 객체에 메타데이터 필드를 설정하는 방법은 gsutil help setmeta를 참조하세요.

-i

구성된 사용자 인증 정보를 사용하여 서비스 계정을 가장할 수 있습니다. 예를 들면 다음과 같습니다.

gsutil -i "service-account@google.com" ls gs://pub

이 설정은 XML API와 S3에서 무시됩니다. 서비스 계정을 가장하는 방법에 대한 자세한 내용은 gsutil help creds를 참조하세요.

-m

지원되는 작업(acl ch, acl set, cp, mv, rm, rsync, setmeta)이 동시에 실행됩니다. 이렇게 하면 비교적 빠른 네트워크 연결을 통해 다수의 파일에 작업을 수행할 때 성능이 크게 향상될 수 있습니다.

gsutil은 멀티 스레드 및 다중 처리를 조합하여 지정된 작업을 수행합니다. 스레드 및 프로세서의 수는 각각 parallel_thread_countparallel_process_count에 따라 결정됩니다. 이러한 값은 .boto 구성 파일에서 설정되거나 -o 최상위 플래그를 사용하여 개별 요청에 지정됩니다. gsutil에는 제한 요청에 대한 기본 지원 기능이 없으므로 이러한 값을 사용해 실험해야 합니다. 최적 값은 네트워크 속도, CPU 수, 사용 가능한 메모리를 포함한 여러 요소에 따라 달라질 수 있습니다.

-m 옵션을 사용하면 상당한 네트워크 대역폭을 소비할 수 있으며 네트워크 속도가 느린 경우 문제가 생기거나 성능이 저하될 수 있습니다. 예를 들어 다수의 다른 중요한 작업에서도 사용하는 네트워크 링크를 통해 대규모 rsync 작업을 시작하면 해당 작업의 성능이 저하될 수 있습니다. 마찬가지로 -m 옵션을 사용하면 성능이 저하될 수 있습니다. 로컬 디스크를 '스래싱'할 수 있으므로 로컬에서 모든 작업을 수행하는 경우에 특히 그렇습니다.

이러한 문제를 방지하려면 parallel_thread_countparallel_process_count의 값을 줄이거나 -m 옵션 사용을 완전히 중지합니다. gsutil에서 사용하는 I/O 용량의 양을 제한하고 로컬 디스크를 독점하지 못하도록 하기 위해 사용할 수 있는 도구 중 하나는 여러 Linux 시스템에 내장되어 있는 ionice입니다. 예를 들어 다음 명령어는 로컬 디스크를 독점하지 않도록 gsutil의 I/O 우선순위를 줄입니다.

ionice -c 2 -n 7 gsutil -m rsync -r ./dir gs://some bucket

전체 전송이 완료되기 전에 동시 전송을 사용하는 다운로드나 업로드 작업이 실패하면(예: 파일 1,000개 중 300개가 전송된 후 실패) 전체 전송을 다시 시작해야 합니다.

또한 -m 플래그를 중지하면 오류 발생 시 일반적으로 대부분의 명령어가 실패합니다. 하지만 멀티 스레드 또는 멀티 프로세스로 -m을 사용 설정하면 모든 명령어가 계속 모든 작업을 시도하며 명령어 실행이 끝날 때 실패한 작업 횟수(있는 경우)가 예외로 보고됩니다.

-o

현재 명령어에 대한 boto 구성 파일의 값을 <section>:<name>=<value> 형식으로 재정의합니다. 예를 들면 다음과 같습니다. gsutil -o "GSUtil:parallel_thread_count=4" ... gsutil 통합 테스트에 옵션을 전달하지 않으며 boto 구성 파일에 저장된 값이 변경되지 않습니다.

-q

gsutil이 파일의 복사 또는 삭제 진행률을 표시하지 않고 자동으로 작업을 수행합니다. 오류는 계속 보고됩니다. 이 옵션은 출력을 파일에 로깅하고 로그 정보 중 오류만 필요한 크론 작업에서 gsutil을 실행하는 데 유용할 수 있습니다.

-u

요청에 대한 요금이 청구되는 사용자 프로젝트의 ID 또는 번호를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

gsutil -u "bill-this-project" cp ...