2012-03-12 3 views
2

여러 개의 하위 디렉토리가있는 폴더를 압축합니다. 나는 이런 식으로 읽는 BOTO 사용하여 S3에 업로드하면 boto를 사용하여 s3에 zip 파일을 업로드하는 방법은 무엇입니까?

zipdata = open(os.path.join(os.curdir, zip_file), 'rb').read() 

다음 루트 디렉토리에 복사 모든 subdirectries 모든 파일. s3에 서브 디렉토리가 없습니다.

폴더의 zip 파일을 s3에 업로드하는 방법은 무엇입니까?

+0

S3에는 디렉터리가 없습니다. – tkone

+0

그렇지만 왜 그렇게해야합니까? – user12345

+1

파일 이름에 슬래시를 넣어 디렉토리를 가짜로 만들 수 있습니다. –

답변

0

위에 표시된 명령을 실행하면 zip_data에 zip 파일에 포함 된 바이트가 포함됩니다. 그런 다음 해당 데이터를 S3에 쓰면 해당 데이터가 포함 된 S3의 단일 개체 (키)가 생성됩니다. 너가 원하는게 그거야?

zip 파일을 확장하고 그 안에있는 모든 개별 파일 및 디렉토리를 S3에 개별 객체로 저장하려는 것처럼 들립니다. 이 경우 zip 파일을 로컬로 확장 한 다음 계층 구조를 거쳐 각 개별 파일을 S3에 저장해야합니다. boto에서 s3put 명령 줄 도구를 사용하면이 작업을 수행 할 수 있습니다.

자동으로 Zip 파일의 내용을 풀기 위해 S3 자체를 가져올 방법이 없습니다.

관련 문제