tencent cloud

Cloud Object Storage

문서Cloud Object Storage툴 가이드COSCLI 툴자주 쓰는 명령어파일 동기화 업/다운로드 또는 복사 - sync

파일 동기화 업/다운로드 또는 복사 - sync

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2026-03-30 16:10:19
sync 명령어는 파일을 동기화 업로드, 다운로드 또는 복사하는 데 사용됩니다. cp 명령어와 다른 점은 sync 명령어는 먼저 같은 이름의 파일의 crc64를 비교하고, crc64 값이 같으면 전송하지 않는다는 것입니다.
주의:
업로드 파일 명령어를 사용하려면, 권한 정책을 설정할 때 action을 cos:HeadBucket, cos:GetBucket, cos:HeadObject, cos:InitiateMultipartUpload, cos:UploadPart, cos:CompleteMultipartUpload, cos:ListMultipartUploads, cos:ListParts으로 설정해야 합니다.
다운로드 파일 명령어를 사용하려면, 권한 정책을 설정할 때 action을 cos:HeadBucket, cos:GetBucket, cos:HeadObject, cos:GetObject으로 설정해야 합니다.
파일 복사 명령어를 사용하려면, 권한 정책을 설정할 때 대상 객체 action을 cos:GetBucket, cos:HeadObject, cos:InitiateMultipartUpload, cos:PutObject, cos:CompleteMultipartUpload으로 설정해야 합니다. 소스 객체 action은 cos:HeadBucket, cos:GetBucket, cos:HeadObject, cos:GetObject으로 설정해야 합니다.
자세한 권한 부여는 CAM을 지원하는 비즈니스 인터페이스를 참조하십시오.

명령어 형식

./coscli sync <source_path> <destination_path> [flag]
sync 명령어는 다음 매개변수를 포함합니다:
매개변수 형식:
매개변수 용도
예제
source_path
소스 파일 경로. 로컬 경로 또는 COS 파일 경로일 수 있습니다. COS 경로는 구성 매개변수의 버킷 별칭 또는 버킷 이름을 사용하여 액세스할 수 있습니다. 버킷 이름을 사용하여 액세스하는 경우, 추가로 endpoint 플래그를 지정해야 합니다.
로컬 경로: ~/example.txt
버킷 별칭을 사용하여 COS 파일 경로 지정: cos://bucketalias/example.txt
버킷 이름을 사용하여 COS 파일 경로 지정: cos://examplebucket-1250000000/example.txt
destination_path
대상 파일 경로. 로컬 경로 또는 COS 파일 경로일 수 있습니다. COS 경로는 구성 매개변수의 버킷 별칭 또는 버킷 이름을 사용하여 액세스할 수 있습니다. 버킷 이름을 사용하여 액세스하는 경우, 추가로 endpoint 플래그를 지정해야 합니다.
로컬 경로: ~/example.txt
버킷 별칭을 사용하여 COS 파일 경로 지정: cos://bucketalias/example.txt
버킷 이름을 사용하여 COS 파일 경로 지정: cos://examplebucket-1250000000/example.txt
sync 명령어는 다음의 선택적 flag를 포함합니다:
flag 약칭
flag 전체 이름
flag 용도
없음
--include
특정 패턴을 포함하는 파일 (v1.0.4 이전 버전은 업로드 시 전달된 경로 아래의 로컬 파일 경로만 필터링하고, v1.0.4 및 이후 버전은 전달된 전체 경로를 필터링합니다)
예를 들어: ./test 아래의 모든 파일을 COS에 업로드해야 하는 경우, ./test에는 aaa 폴더가 포함되어 있으며 aaa 폴더에는 1.txt 파일이 포함되어 있습니다.
1.0.4 이전 버전은 aaa/1.txt를 매칭합니다.
1.0.4 및 이후 버전은 ./test/aaa/1.txt를 매칭합니다.
없음
--exclude
특정 패턴을 제외하는 파일 (v1.0.4 이전 버전은 업로드 시 전달된 경로 아래의 로컬 파일 경로만 필터링하고, v1.0.4 및 이후 버전은 전달된 전체 경로를 필터링합니다)
예를 들어: ./test 아래의 모든 파일을 COS에 업로드해야 하는 경우, ./test에는 aaa 폴더가 포함되어 있으며 aaa 폴더에는 1.txt 파일이 포함되어 있습니다.
1.0.4 이전 버전은 aaa/1.txt를 매칭합니다.
1.0.4 및 이후 버전은 ./test/aaa/1.txt를 매칭합니다.
-r
--recursive
재귀적으로 폴더 내 모든 파일을 순회할지 여부.
없음
--storage-class
업로드 파일의 스토리지 유형 지정 (기본값 STANDARD). 더 많은 스토리지 유형은 스토리지 유형 개요를 참조하십시오.
없음
--part-size
파일의 청크 크기로 단위는 MB이며, 기본값은 32이고 최대 5120을 지원합니다. 파일 크기에 따라 청크 크기를 자동 조정하려면 0으로 설정하십시오.
없음
--thread-num
파일 청크 동시성 스레드 수 (기본 동시성 5).
없음
--rate-limiting
단일 링크 속도 제한 (0.1 - 100MB/s).
없음
--snapshot-path
업로드 또는 다운로드 파일 시 스냅샷 정보를 저장할 디렉터리를 지정합니다. 다음 업로드 또는 다운로드 시 coscli는 지정된 디렉터리의 스냅샷 정보를 읽어 증분 업로드 또는 다운로드를 수행합니다. 이 옵션은 디렉터리 파일 동기화를 가속화하는 데 사용됩니다.
없음
--meta
업로드 파일의 메타정보. 일부 HTTP 표준 속성(HTTP Header) 및 x-cos-meta-로 시작하는 사용자 정의 메타데이터(User Meta) 포함. 파일 메타정보 형식은 header:value#header:value, 예시는 Expires:2022-10-12T00:00:00.000Z#Cache-Control:no-cache#Content-Encoding:gzip#x-cos-meta-x:x
없음
--routines
파일 간 동시 업로드 또는 다운로드 스레드 수를 지정하며, 기본값은 3입니다.
없음
--fail-output
이 옵션은 업로드 또는 다운로드 실패 시 파일 오류 출력을 활성화할지 여부를 결정합니다 (기본값 true, 활성화). 활성화된 경우 파일 전송 실패는 지정된 디렉터리에 기록됩니다 (지정되지 않은 경우 기본값 ./coscli_output). 비활성화된 경우 오류 파일 수만 콘솔에 출력됩니다.
없음
--fail-output-path
이 옵션은 업로드 또는 다운로드 실패 파일의 오류 출력 폴더를 지정하는 데 사용됩니다. 사용자 정의 폴더 경로를 제공하여 오류 출력 폴더의 위치와 이름을 제어할 수 있습니다. 이 옵션을 설정하지 않으면 기본 오류 로그 폴더 ./coscli_output가 사용됩니다.
없음
--retry-num
속도 제한 재시도 횟수 (기본값 0, 재시도 안 함). 1-10회 선택 가능. 다수의 시스템이 동일한 COS 디렉터리에서 동시에 다운로드 작업을 수행할 때, 이 매개변수를 지정하여 재시도함으로써 속도 제한 오류를 회피할 수 있습니다.
없음
--err-retry-num
오류 재시도 횟수 (기본값 5). 1-10회 지정 가능, 또는 0으로 설정 시 재시도하지 않음을 의미합니다.
없음
--err-retry-interval
재시도 간격 (--err-retry-num1-10으로 지정한 경우에만 사용 가능). 1-10초의 재시도 간격을 지정하며, 지정하지 않거나 0으로 설정할 경우 매번 재시도 간격은 1-10초 내에서 무작위로 결정됩니다.
없음
--only-current-dir
현재 디렉터리의 파일만 업로드하고 하위 디렉터리 및 내용을 무시할지 여부 (기본값 false, 무시하지 않음).
없음
--disable-all-symlink
소프트 링크 하위 파일 및 소프트 링크 하위 디렉터리를 업로드 시 모두 무시할지 여부 (기본값 true, 업로드하지 않음). 현재 Linux 및 macOS 시스템에서만 사용 가능합니다.
없음
--enable-symlink-dir
소프트 링크의 하위 디렉터리를 업로드할지 여부 (기본값 false, 업로드하지 않음). 현재 Linux 및 macOS 시스템에서만 사용 가능합니다.
없음
--disable-crc64
CRC64 데이터 검증을 비활성화할지 여부 (기본값 false, 검증 활성화).
없음
--delete
대상 경로에 있는 다른 모든 파일을 삭제하고 이번 동기화 파일만 유지할지 여부 (기본값 false, 삭제하지 않음). 예기치 않은 데이터 삭제를 방지하기 위해 --delete 옵션 사용 전 버전 관리를 활성화하는 것이 좋습니다.
없음
--backup-dir
삭제된 파일 동기화 백업, 대상 측에서 삭제되었지만 소스 측에 존재하지 않는 파일을 저장하는 데 사용됩니다 (다운로드 시에만 적용되며 --delete=true일 때 필수 입력). 업로드 및 버킷 복사 시 예기치 않은 데이터 삭제를 복구하려면 버전 관리를 사용하십시오.
없음
--force
강제 작업, 확인 메시지 표시 안 함. (기본값 false)
없음
--disable-checksum
기본값 true, 분할된 조각의 crc64만 검증합니다. false로 설정할 경우 전체 파일의 crc64를 검증합니다. (coscli V1.0.6 및 이전 버전은 기본값 false)
없음
--process-log
프로세스 로그 활성화 여부, 기본값 true, 활성화
없음
--process-log-path
이 옵션은 프로세스 로그를 저장할 전용 출력 폴더를 지정하는 데 사용됩니다. 로그에는 파일 업로드 또는 다운로드와 관련된 정보(오류 로그, 정상 실행 로그, 재시도 등)가 기록됩니다. 사용자 정의 폴더 경로를 제공하여 로그 출력 폴더의 위치와 이름을 제어할 수 있습니다. 이 옵션을 설정하지 않으면 기본 로그 폴더(coscli_output)가 사용됩니다.
없음
--update
수정 시간이 더 최신인 파일만 전송
없음
--ignore-existing
존재하지 않는 파일만 전송
없음
--skip-dir
기본값 false, true로 설정할 경우 폴더 전송을 건너뜁니다.
없음
--acl
파일의 ACL 설정, 예: private, public-read
없음
--grant-read
객체 읽기 권한을 권한 부여 대상에게 부여합니다. 형식은 id="[OwnerUin]"이며, 예를 들어 id="100000000001"입니다. 반각 쉼표(,)를 사용하여 여러 권한 부여 대상을 구분할 수 있습니다. 예: id="100000000001",id="100000000002".
없음
--grant-read-acp
객체의 액세스 제어 목록(ACL) 읽기 권한을 권한 부여 대상에게 부여합니다. 형식은 id="[OwnerUin]"이며, 예를 들어 id="100000000001"입니다. 반각 쉼표(,)를 사용하여 여러 권한 부여 대상을 구분할 수 있습니다. 예: id="100000000001",id="100000000002".
없음
--grant-write-acp
객체의 액세스 제어 목록(ACL) 쓰기 권한을 권한 부여 대상에게 부여합니다. 형식은 id="[OwnerUin]"이며, 예를 들어 id="100000000001"입니다. 반각 쉼표(,)를 사용하여 여러 권한 부여 대상을 구분할 수 있습니다. 예: id="100000000001",id="100000000002".
없음
--grant-full-control
객체에 대한 모든 권한을 권한 부여 대상에게 부여합니다. 형식은 id="[OwnerUin]"이며, 예를 들어 id="100000000001"입니다. 반각 쉼표(,)를 사용하여 여러 권한 부여 대상을 구분할 수 있습니다. 예: id="100000000001",id="100000000002".
없음
--tags
객체의 태그 집합으로, 태그를 최대 10개까지 설정할 수 있음(예: --tags="Key1=Value1&Key2=Value2")
없음
--forbid-overwrite
버전 관리가 활성화되지 않은 버킷의 경우 파일 업로드 시 동일한 이름의 객체 덮어쓰기를 금지할지 여부를 지정하는 데 사용됩니다:
false로 지정할 경우 기본적으로 동일한 이름의 Object를 덮어씁니다.
true로 지정할 경우 동일한 이름의 Object 덮어쓰기를 금지함을 의미합니다.
버킷이 활성화 또는 일시 정지된 버전 관리 상태인 경우 x-cos-forbid-overwrite 요청 헤더 설정이 무효화되며, 즉 동일한 이름의 객체 덮어쓰기가 허용됩니다.
없음
--encryption-type
서버 측 암호화 방식(SSE-COS/SSE-C)
없음
--server-side-encryption
서버 측 암호화 알고리즘으로 AES256, cos/kms를 지원합니다.
SSE-COS 또는 SSE-KMS를 사용할 때 이 필드는 필수 항목입니다.
없음
--sse-customer-algo
서버 측 암호화 알고리즘으로 AES256을 지원합니다.
SSE-C를 사용할 때 이 필드는 필수 항목입니다.
없음
--sse-customer-key
서버 측 암호화 키의 Base64 인코딩
예: MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY=.
SSE-C를 사용할 때 이 필드는 필수 항목입니다.
없음
--sse-customer-key-md5
서버 측 암호화 키의 MD5 해시 값으로 Base64 인코딩을 사용합니다.
예: U5L61r7jcwdNvT7frmUG8g==.
SSE-C를 사용할 때 이 필드는 필수 항목입니다.
없음
--check-point
중단 지점에서 이어받기 기능을 활성화할지 여부로, 기본값은 true이며 이어받기 기능을 활성화합니다.
설명:
명령을 사용할 때 도구가 로컬 경로에 대한 액세스 권한이 있는지 확인하십시오.
sync 명령어는 대용량 파일을 업로드하거나 다운로드할 때 자동으로 병렬 업로드/다운로드를 활성화합니다.
파일 크기가 --part-size보다 클 때, COSCLI는 먼저 파일을 --part-size 크기로 분할한 후 --thread-num개의 스레드를 사용하여 동시에 업로드/다운로드 작업을 실행합니다.
각 스레드는 하나의 연결을 유지하며, 각 연결에 대해 --rate-limiting 매개변수를 사용하여 단일 연결 속도 제한을 설정할 수 있습니다. 동시 업로드/다운로드가 활성화된 경우 총 속도는 --thread-num * --rate-limiting입니다.
파일을 분할 형태로 업로드/다운로드할 때는 기본적으로 중단 지점에서 이어받기 기능이 활성화됩니다.
--include--exclude는 표준 정규 표현식 구문을 지원하며, 특정 조건에 맞는 파일을 필터링하는 데 사용할 수 있습니다.
기본적으로 소프트 링크는 업로드되지 않습니다. 소프트 링크를 업로드하려면 --disable-all-symlink=false --enable-symlink-dir=true을 설정하면 됩니다.참고: 소프트 링크에 순환 참조가 있는 경우 도구가 무한 루프 상태에 빠질 수 있습니다.
zsh를 사용할 때는 패턴 문자열 양쪽에 쌍따옴표를 추가해야 할 수 있습니다.
snapshot-path를 마이그레이션 대상 디렉터리나 해당 하위 디렉터리로 설정하지 마십시오.
./coscli sync ~/test/ cos://bucket1/example/ -r --include ".*\\.txt$" --snapshot-path=/path/snapshot-path --meta=x-cos-meta-a:a#ContentType:text#Expires:2022-10-12T00:00:00.000Z
사용자가 sync 명령어를 사용할 때 PUT 요청 비용이 발생하는 것 외에도, 클라우드 파일에 대한 HEAD 요청이 발생하는 다음 두 가지 경우가 있어 추가 비용이 발생할 수 있습니다:
스냅샷 디렉터리를 지정하는 파라미터(--snapshot-path)를 추가하지 않으면 HEAD 요청 비용이 발생할 수 있습니다.
지정된 스냅샷 디렉터리 파라미터(--snapshot-path)를 추가하고 스냅샷 디렉터리를 처음 생성하는 경우 HEAD 요청 비용이 발생합니다. 처음 생성된 스냅샷 디렉터리가 아닌 경우 추가 요청 비용이 발생하지 않습니다.
이 명령어의 기타 일반 옵션(예: 버킷 전환, 사용자 계정 전환 등)에 대해서는 일반 옵션 문서를 참조하십시오.

작업 예시

파일 동기식 업로드

./coscli sync ~/example.txt cos://bucket1/example.txt

동기화 다운로드 파일

./coscli sync cos://bucket1/example.txt ~/example.txt

버킷 내 동기화 파일 복사

./coscli sync cos://bucket1/example.txt cos://bucket1/example_copy.txt

크로스 버킷 동기화 파일 복사

./coscli sync cos://bucket1/example.txt cos://bucket2/example_copy.txt

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백