OSX (또는 Linux)에서 NOUNZ data compiler을 사용하고 있습니다. 자동으로 정적 HTML 파일 (수십만, 때로는 수백만 개의 파일)의 대규모 디렉토리 구조가 생성됩니다. 나는 원격 웹 서버에 전체 트리를 이동하려면CLI를 사용하여 AWS S3에서 압축 및 압축 된 파일 계층을 올바르게 압축 해제 및 압축 해제하는 방법은 무엇입니까?
생성 된 디렉토리 트리의 간단한 예는 ...
일반적를 다음과 같이 보입니다 단순히 타르 및 압축 나무는 명령을 사용하여 :
tar -cvf HTML.tar HTML
gzip HTML.tar
이라는 타르-ED 및 압축 파일을 생성 HTML.tar.gz
내가 할 수있는 다음 FTP 또는 SCP 단순히 다음 명령을 사용하여 압축을 풉니 다 파일의 압축을 해제 할 수 있으며 원격 웹 서버에 위의 파일 :
gzip -d HTML.tar.gz
tar -xvf HTML.tar
이 웹 서버에 동일한 파일 트리가 발생합니다을 이는 로컬 시스템의 데이터 컴파일러에 의해 생성되었습니다.
문제 : Amazon Web Services (AWS) Simple Storage Solution (S3)을 사용하여 위와 동일한 동작을하고 싶습니다.
내 질문 : 내가 압축을 해제하고 압축을 풀어야 다음 AWS S3에 로컬 서버에서 전체 타르 에드 압축 트리를 이동 할 수 있습니다 동일 (또는 유사 행위)을 모방 할 수있는 가장 좋은 방법은 무엇입니까 내 전체 디렉토리 구조를 재현하는 파일?
tar
및 gzip
명령은 S3 CLI API의 일부가 아니므로 수백만 개의 파일 (하루에 한 번 발생)을 포함 할 수있는 디렉토리 구조를 이동해야합니다. 처음 타르거나 압축하지 않고 모든 것을 움직이고 재현하는 것은 매우 느립니다.
참고 : 데이터 컴파일러가 실행될 때 항상 이전 트리 전체를 삭제하고 전체 트리를 재생성하므로 모든 디렉토리와 파일에 완전히 새로운 inode가 생성됩니다. 이것은 "증분"복사본과 동기화가 실행 가능하지 않다는 것을 의미합니다. 나는 매번 나무 전체를 움직여야한다.
당신은 모든 파일을 재생성한다고 말하지만 파일 내용은 실제로 변경됩니까? 'aws s3 sync' 명령을 사용하여 파일이 실제로 변경되었는지 md5 해시를 사용하여 동기화 할 수 있습니다. –
예, 기존 파일의 내용이 변경 될 수 있습니다. 컴파일러가 실행될 때 발생할 수있는 세 가지 결과가 있습니다. 1) 새 폴더 및/또는 파일을 추가 할 수 있습니다. 2) 기존 폴더 및/또는 파일이 삭제 될 수 있습니다. 3) 기존 파일 내용이 변경 될 수 있습니다. AWS s3 동기화는 파이프를 통해 수백만 개의 파일을 전송하는 데 오랜 시간이 걸릴 수 있습니다. –