# Upload dữ liệu bằng giao diện Command line Người dùng có thể access hệ thống Sun S3 qua các công cụ Http client tool hoặc SDK. Bài viết sau sẽ hướng dẫn upload dữ liệu lên hệ thống Sun S3 thông qua giao diện command line/ terminal. ```{admonition} Pre-condition * Hệ điều hành : Ubuntu * Cài đặt packet JQ: Json utils ( sudo apt install jq) * Có một bucket * Có một bộ Sun S3 bucket ``` Khi bạn đã download Sun S3 Key về. Di chuyển terminal tới thư mục chứa file sun s3 key. ``` cd ``` ## Step 1: Create variable Tạo các variable: SECRET, ACCESS, TIMESTAMP Tạo SECRET variable ``` SECRET=`cat access-key-20230328154936.json | jq -r '.secretKey'` ``` Tạo ACCESS variable ``` ACCESS=`cat access-key-20230328154936.json | jq -r '.accessKey'` ``` Tạo TIMESTAMP variable ``` TIMESTAMP=`date +%s` ``` Kiểm tra lại: ``` echo $SECRET && echo $ACCESS && echo $TIMESTAMP ``` Khi này màn hình sẽ show ra value của các biến đã được set ```{thumbnail} ../../../_static/img/s3/how-to/curl_upload_data_with_api_key_1.png :width: 80 % :alt: Step :align: center ``` ## Step 2: Create Api-key Create Hashed key ``` HASHED=`printf $SECRET:$TIMESTAMP | sha256sum | cut -d " " -f 1` ``` Create api key ``` API_KEY=`printf $ACCESS:$TIMESTAMP:$HASHED | base64 -w 0` ``` ## Step 3: Get upload link Thay *bucket-code* bằng bucket code của bạn Trong ví dụ này chúng ta lấy link để upload một object có tên là *abc.txt* ``` UPLOADURL=`curl -H "api-key: $API_KEY" -H "Content-Type: application/json" -d '{"items":[{"name": "abc.txt"}],"uniqcode": "bucket-code"}' "https://client-access-prod.sunteco.vn/s3/v1/object/pre-upload" | jq -r '.result.items[0].uploadUrl'` ``` ## Step 4: Upload file Thay *filename* bằng tên file của bạn. ``` curl -d @filename -X PUT $UPLOADURL ``` ```{div} sd-fs-5 sd-text-primary Result: ``` File đã được upload lên Sun S3 thành công. Chúng ta có thể kiểm tra tại dashboard. ```{thumbnail} ../../../_static/img/s3/how-to/curl_upload_data_with_api_key_2.png :width: 80 % :alt: Step :align: center ```