公共存储桶(无须认证)

1
2
3
4
5
6
# 上传文件
# test 为 bucket 名字
curl -T "./1.txt" https://s3.example.com/test/

# 下载文件
curl -OL https://s3.example.com/test/1.txt

私有存储桶(需要认证)

上传文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
ACCESS_KEY="minio_ACCESS_KEY"
SECRET_KEY="minio_SECRET_KEY"
BUCKET_NAME="test"
FILE_NAME="./1.txt"
OBJECT_NAME="1.txt"
MINIO_URL="s3.example.com"

# 生成签名
DATE_VALUE="$(date -R)"
SIGNATURE="$(echo -en "PUT\n\n\n${DATE_VALUE}\n/${BUCKET_NAME}/${OBJECT_NAME}" | openssl sha1 -hmac "${SECRET_KEY}" -binary | base64)"

# 上传文件
curl -X PUT --upload-file "${FILE_NAME}" \
--header "Date: ${DATE_VALUE}" \
--header "Authorization: AWS ${ACCESS_KEY}:${SIGNATURE}" \
"${MINIO_URL}/${BUCKET_NAME}/${OBJECT_NAME}"

下载文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
ACCESS_KEY="minio_ACCESS_KEY"
SECRET_KEY="minio_SECRET_KEY"
BUCKET_NAME="test"
FILE_NAME="./1.txt"
OBJECT_NAME="1.txt"
MINIO_URL="s3.example.com"

# 生成签名
DATE_VALUE="$(date -R)"
SIGNATURE="$(echo -en "GET\n\n\n${DATE_VALUE}\n/${BUCKET_NAME}/${OBJECT_NAME}" | openssl sha1 -hmac "${SECRET_KEY}" -binary | base64)"

# 上传文件
curl -X GET -OL \
--header "Date: ${DATE_VALUE}" \
--header "Authorization: AWS ${ACCESS_KEY}:${SIGNATURE}" \
"${MINIO_URL}/${BUCKET_NAME}/${OBJECT_NAME}"