使用示例
更新时间:2024-01-12 06:50:06
大多数基于 AWS S3 开发的工具都有其自定义访问地址的方法,下面以一些常用工具为例,说明如何对接 山河云对象存储。
AWS SDK for Python
-
安装 Boto 类库:
> pip install boto
-
编写程序:
> cat boto-to-qingstor.py import boto conn = boto.connect_s3( aws_access_key_id='PLLZOBTTZXGBNOWUFHZZ', aws_secret_access_key='MnIjI58zC8AX07xotHXcm6grwFgOXhaJQHkTCX2X', host='s3.jn1.is.shanhe.com' ) bucket = conn.get_bucket('mybucket') key = bucket.get_key("mykey")
AWS CLI
-
安装 AWS CLI 工具:
> pip install awscli
-
编辑配置文件:
> cat ~/.aws/config [profile qingstor] region = jn1a output = json s3 = signature_version = s3v4
-
设置访问密钥:
> cat ~/.aws/credentials [qingstor] aws_access_key_id = PLLZOBTTZXGBNOWUFHZZ aws_secret_access_key = MnIjI58zC8AX07xotHXcm6grwFgOXhaJQHkTCX2X
-
命令行执行:
> aws s3api put-object --bucket mybucket --key puppy.jpg --body ~/Pictures/puppy.jpg --endpoint-url 'https://s3.jn1.is.shanhe.com' --profile qingstor { "ETag": "\"c3872b49cb244269aad8cd4275a41c4a\"" }
s3fs
-
按照文档的步骤编译并安装 s3fs:
https://github.com/s3fs-fuse/s3fs-fuse/blob/master/README.md
-
设置访问密钥:
> cat /root/.s3fs/credentials PLLZOBTTZXGBNOWUFHZZ:MnIjI58zC8AX07xotHXcm6grwFgOXhaJQHkTCX2X EOF > chmod 600 /root/.s3fs/credentials
填写说明:
-
密钥文件填写格式为:
ACCESS_KEY_ID:ACCESS_KEY_SECRET
。 -
假设 ACCESS_KEY_ID 的值为 PLLZOBTTZXGBNOWUFHZZ;ACCESS_KEY_SECRET 的值为 MnIjI58zC8AX07xotHXcm6grwFgOXhaJQHkTCX2X。则填写内容为:
PLLZOBTTZXGBNOWUFHZZ:MnIjI58zC8AX07xotHXcm6grwFgOXhaJQHkTCX2X
-
密钥文件的权限需设置为 600。
-
-
挂载 Bucket 至本地目录:
> mkdir -p /mnt/mybucket > s3fs mybucket /mnt/mybucket -o passwd_file=/root/.s3fs/credentials -o url=http://s3.jn1.is.shanhe.com > df -T | grep s3fs s3fs fuse.s3fs 274877906944 0 274877906944 0% /mnt/mybucket
-
测试文件系统操作:
> echo 'hello world' > /tmp/hello.txt > cp -v /tmp/hello.txt /mnt/mybucket/ ‘/tmp/hello.txt’ -> ‘/mnt/mybucket/hello.txt’ > ls -l /mnt/mybucket/hello.txt ---------- 1 root root 4635 Aug 11 23:26 /mnt/mybucket/hello.txt > cat /mnt/mybucket/hello.txt hello world
-
配置开机自动挂载 s3fs :
-
创建
/etc/passwd-s3fs
文件,可参考前文设置访问密钥*相关内容:> cat /etc/passwd-s3fs PLLZOBTTZXGBNOWUFHZZ:MnIjI58zC8AX07xotHXcm6grwFgOXhaJQHkTCX2X EOF > chmod 600 /etc/passwd-s3fs
-
修改
/etc/fstab
文件,在该文件末尾添加如下内容,其中your_bucket_name
,your_mount_point
,your_url
需根据实际情况进行填写:s3fs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0
示例:
s3fs#mybucket /mnt/mybucket fuse _netdev,url=http://s3.jn1.is.shanhe.com,allow_other 0 0
-
执行如下命令行挂载,若无报错信息,则说明设置正常。
> mount -a
-
若客户端操作系统为 Centos 6.5,还需执行如下命令:
> chkconfig netfs on
-
至此您的系统已经成功的配置了开机自动挂载 s3fs。
-
s3cmd
-
安装 s3cmd 工具:
> pip install s3cmd
-
根据实际情况,编辑如下配置文件的相关字段:
> cat ~/.s3cfg [default] access_key = PLLZOBTTZXGBNOWUFHZZ secret_key = MnIjI58zC8AX07xotHXcm6grwFgOXhaJQHkTCX2X bucket_location = pek3a host_base = s3.jn1.is.shanhe.com host_bucket = %(bucket)s.s3.jn1.is.shanhe.com
-
执行如下命令行,上传文件至 山河云对象存储:
> s3cmd put /tmp/hello.txt s3://mybucket/ upload: '/tmp/hello.txt' -> 's3://mybucket/hello.txt' [1 of 1] 4635 of 4635 100% in 0s 523.36 B/s done