对大多数基于AWS S3开发的工具,进行如下改动即可访问七牛对象存储:
- 获取七牛账号的AccessKey和SecretKey,在您使用的客户端和SDK中配置七牛的AccessKey和SecretKey。
- 设置客户端连接的Endpoint为七牛对象存储 S3 的 Endpoint。
只要涉及的接口实现了兼容,即可在工具中使用对应的功能,对接七牛对象存储。
AWS SDK for Golang
1 安装,可参考官方文档
go get github.com/aws/aws-sdk-go
2 使用AWS SDK for Golang 访问七牛云存储
package main
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
const (
s3endpoint = "<qiniu-s3-endpoint>"
s3region = "cn-east-1"
s3accessKeyId = "<your-qiniu-access-key-id>"
s3SecretKeyId = "<your-qiniu-secret-key-id>"
)
func main() {
conf := &aws.Config{
Region: aws.String(s3region),
Endpoint: aws.String(s3endpoint),
Credentials: credentials.NewStaticCredentials(s3accessKeyId, s3SecretKeyId, ""),
}
sess := session.Must(session.NewSessionWithOptions(session.Options{Config:*conf}))
svc := s3.New(sess)
input := &s3.ListBucketsInput{}
result, err := svc.ListBuckets(input)
if err != nil {
panic(err.Error())
}
println(result.String())
}
AWS SDK for Python
1 通过pip安装boto3,安装说明可参考官方文档
pip install boto3
2 使用AWS SDK for Python访问七牛对象存储
import boto3
from botocore.client import Config
# Config
s3endpoint = '<qiniu-s3-endpoint>'
s3region = 'cn-east-1'
s3accessKeyId = '<your-qiniu-access-key-id>'
s3SecretKeyId = '<your-qiniu-secret-key-id>'
# Use S3 client
s3client = boto3.client(
's3',
aws_access_key_id = s3accessKeyId,
aws_secret_access_key = s3SecretKeyId,
endpoint_url = s3endpoint,
region_name = s3region
)
# List buckets
buckets = s3client.list_buckets()
# Output the bucket names
for bucket in buckets['Buckets']:
print(bucket["Name"])
# Use S3 resource
s3resource = boto3.resource('s3',
endpoint_url = s3endpoint,
region_name = s3region,
aws_access_key_id = s3accessKeyId,
aws_secret_access_key = s3SecretKeyId
)
# List buckets
buckets = s3resource.buckets.all()
# Output the bucket names
for bucket in buckets:
print(bucket.name)
AWS SDK for Java
1 设置工具包,可参考官方文档(建议您使用最新版本的 java sdk)
2 使用 AWS SDK for Java 访问七牛对象存储
import java.io.IOException;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.S3ClientOptions;
import com.amazonaws.services.s3.model.Bucket;
public class S3 {
public static void main(String[] args) throws IOException {
String s3endpoint = "<qiniu-s3-endpoint>";
String accessKeyId = "<your-qiniu-access-key-id>";
String accessKeySecret = "<your-qiniu-secret-key-id>";
AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials(accessKeyId,accessKeySecret));
s3.setEndpoint(s3endpoint);
S3ClientOptions options = new S3ClientOptions();
options.withChunkedEncodingDisabled(true);
s3.setS3ClientOptions(options);
for (Bucket bucket : s3.listBuckets()) {
System.out.println(" - " + bucket.getName());
}
}
}
AWS SDK for JavaScript
1 通过pip安装@aws-sdk/client-s3,安装说明可参考官方文档
npm install @aws-sdk/client-s3
yarn add @aws-sdk/client-s3
2 使用AWS SDK for JavaScript访问七牛对象存储
const { S3 } = require("@aws-sdk/client-s3");
const s3Endpoint = '<qiniu-s3-endpoint>';
const s3Region = '<qiniu-s3-region>';
const s3AccessKeyId = '<your-qiniu-access-key-id>';
const s3SecretKeyId = '<your-qiniu-secret-key-id>';
const s3Client = new S3({ region: s3Region, endpoint: s3Endpoint, credentials: { accessKeyId: s3AccessKeyId, secretAccessKey: s3SecretKeyId } });
const buckets = await s3Client.listBuckets({});
for (const bucket of buckets.Buckets) {
console.log(bucket.Name);
}
CloudBerry Explorer for Amazon S3
CloudBerry Explorer for Amazon S3是CloudBerry Lab提供的S3图形化数据管理软件,支持数据从本地到云端的上传、下载、同步、删除等管理操作。通过一下配置方式,您也可以使用CloudBerry Explorer for Amazon S3管理您在七牛云存储的资源。
1 下载安装CloudBerry Explorer for Amazon S3
2 安装完成后打开,选择『S3 Compatible』进行云存储配置
3 添加新的S3 Compatible的账号,Display name可以填写Qiniu,Service point 即七牛S3的服务域名,Access Key和Secret Key填写七牛的AK/SK,Signature version选4。点击"Test Connection",显示“Connection Success”表示连接成功。
4 现在就可以通过CloudBerry Explorer for Amazon S3实现bucket和文件的管理。
注:CloudBerry Explorer for Amazon S3 对 S3 Compatible 和 Amazon S3 两种配置的云存储支持的功能本身就有区别,如生命周期、加密等均不支持。
S3 Browser
S3 Browser是一种易于使用和强大的Amazon S3免费客户端,通过图形化界面管理Amazon S3。七牛云存储同样支持通过配置后使用S3 Browser进行文件上传、下载、bucket管理等操作。
1 下载安装S3 Browser
2 安装完成后打开,添加七牛云存储账号。Account Type选择 “S3 Compatible Storage",REST Endpoint填写七牛S3的服务域名,Signature Version选择Signature V4,Access Key ID和Secret Access Key填写七牛AK/SK。
3 添加成功后可以看到bucket列表,现在就可以通过S3 Browser进行bucket和文件管理,具体支持的功能可参考兼容接口。
S3FS
S3fs是基于FUSE的文件系统,允许Linux和Mac Os X 挂载S3的存储桶在本地文件系统,S3fs能够保持对象原来的格式。现在您也可以通过S3fs工具挂载七牛云存储。
1 按照官方文档安装 s3fs
2 将七牛AK/SK 写入密钥文件,比如 /root/.passwd-s3fs,并将密钥文件权限设为600
echo AK:SK > /root/.passwd-s3fs
chmod 600 /root/.passwd-s3fs
3 将已经存在的bucket挂载到本地目录,url填写七牛s3的服务域名,如 /mnt/s3fs
s3fs bucketname /mnt/s3fs -o passwd_file=/root/.passwd-s3fs -o url=endpoint -o use_path_request_style
4 验证文件操作
echo 'Hello,world!' > test.txt
cp -v test.txt /mnt/s3fs