14.1.2.2 CLI를 통한 파일 업로드
- 아래 페이지의 일부를 정리한 내용입니다. 전체 내용은 다음 링크를 참고하세요.
Object Storage Namespace을 조회합니다.
oci os ns get
Bucket상의 Object 목록 조회
oci os object list -ns <object_storage_namespace> -bn <bucket_name>
실행예시
PS D:\> oci os ns get { "data": "cnzdbcmqu9s8" } PS D:\> oci os object list -ns cnzdbcmqu9s8 -bn ExampleBucketForCLI { "prefixes": [] }
Bucket에 Object 업로드
oci os object put -ns <object_storage_namespace> -bn <bucket_name> --file <file_location> --name <object_name> --no-multipart
Windows 실행예시
PS D:\ForObjectStorage> dir 디렉터리: D:\ForObjectStorage Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2022-01-12 오후 7:01 images -a---- 2022-01-12 오후 5:27 152 index.html PS D:\ForObjectStorage> oci os object put -bn ExampleBucketForCLI --file index.html { "etag": "4235d07c-1ef4-42db-b64a-4fb045de2fcd", "last-modified": "Tue, 18 Jan 2022 02:42:23 GMT", "opc-content-md5": "B8Iehaa6j58u+qMiWnNldg==" } PS D:\ForObjectStorage> oci os object list -ns cnzdbcmqu9s8 -bn ExampleBucketForCLI { "data": [ { "archival-state": null, "etag": "4235d07c-1ef4-42db-b64a-4fb045de2fcd", "md5": "B8Iehaa6j58u+qMiWnNldg==", "name": "index.html", "size": 152, "storage-tier": "Standard", "time-created": "2022-01-18T02:42:23.945000+00:00", "time-modified": "2022-01-18T02:42:23.945000+00:00" } ], "prefixes": [] }
Bucket에 Object들 벌크 업로드
oci os object bulk-upload -ns <object_storage_namespace> -bn <bucket_name> --src-dir <source_directory_location> --no-multipart
Windows 실행예시
PS D:\ForObjectStorage> oci os object bulk-upload -bn ExampleBucketForCLI --src-dir . Uploaded images/icons8-oracle-96.png [####################################] 100% Uploaded index.html [####################################] 100% { "skipped-objects": [], "upload-failures": {}, "uploaded-objects": { "images/icons8-oracle-96.png": { "etag": "388a319c-b5d0-4a51-bacf-9d9fe84bc621", "last-modified": "Tue, 18 Jan 2022 03:05:04 GMT", "opc-content-md5": "HkJF80OO/DlmKI7usBCg4Q==" }, "index.html": { "etag": "883369a7-4701-4bd9-8351-3fbaada61fbe", "last-modified": "Tue, 18 Jan 2022 03:05:05 GMT", "opc-content-md5": "B8Iehaa6j58u+qMiWnNldg==" } } }
결과 확인
업로드 소스 폴더
업로드 된 Objects
폴더안의 파일은 그림처럼 업로드 되었습니다. 다만 cli로 업로드 된 파일은 application/octet-stream 타입임을 알 수 있습니다.
Multipart 업로드
큰 사이즈의 파일, 예를 들어 Custom Image 파일을 업로드할 때 업로드 시간이 많이 걸리게 됩니다. 이런경우 단일 파일을 여러 파일로 나누어 병렬로 업로드 하면 더 빠르게 업로드 할 수 있습니다. 또한 전송시 네트워크 에러 발생시 에러난 파트별도 재시도를 하여 보다 안정적으로 큰 파일을 업로드 할 수 있습니다.
oci os object put -ns <object_storage_namespace> -bn <bucket_name> --file <file_location> --name <object_name> --part-size <upload_part_size_in_MB> --parallel-upload-count <maximum_number_parallel_uploads>
Windows 실행예시
2.28GB 파일을 100 MB 단위로 나누어서 동시 5개로 병렬로 업로드하는 예시로 3분 57초 걸림.
PS D:\ForObjectStorage> date 2022년 1월 18일 화요일 오후 12:25:22 PS D:\ForObjectStorage> oci os object put -bn ExampleBucketForCLI --file big_file.iso --part-size 100 --parallel-upload-count 5 Upload ID: 3b38b958-3010-4d6d-5e84-55d189b787cc Split file into 24 parts for upload. Uploading object [####################################] 100% { "etag": "2217a0e6-2ae3-4ae8-9507-03d2f36a38ec", "last-modified": "Tue, 18 Jan 2022 03:29:18 GMT", "opc-multipart-md5": "mnHbvK3Eed2+o54P1P7VgA==-24" } PS D:\ForObjectStorage> date 2022년 1월 18일 화요일 오후 12:29:19 PS D:\ForObjectStorage>
결과확인
참고사항
OCI CLI –no-multipart 옵션 설명에서 처럼 128MiB이상이면, 옵션이 없어도 기본적으로 다중 분할하여 업로드 됩니다.
By default, files above 128 MiB will be transferred in multiple parts, then combined.
PS D:\ForObjectStorage> oci os object put -bn ExampleBucketForCLI --file big_file.iso Upload ID: 75e4106e-bf1f-ffd0-5630-c78b68b6168b Split file into 19 parts for upload. Uploading object [####################################] 100% { "etag": "cf5d681b-90a3-409c-b732-1e6c6028c046", "last-modified": "Tue, 18 Jan 2022 03:37:46 GMT", "opc-multipart-md5": "eFqxsX7ROrZUQ0HrQYI/zw==-19" }
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.