对象存储

  • 兼容工具

    最近更新时间:2019-06-24 14:49:37

    对大多数基于AWS S3开发的工具,进行如下改动即可访问七牛对象存储:

    1. 获取七牛账号的AccessKey和SecretKey,在您使用的客户端和SDK中配置七牛的AccessKey和SecretKey。
    2. 设置客户端连接的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());
            }
    
        }
    
    }
    

    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。七牛的S3兼容服务域名暂时不支持HTTPS,请去掉“使用SSL”的勾选,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,七牛的S3兼容服务域名暂时不支持HTTPS,请去掉“Use Secure transfer”的勾选。

    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挂载到本地目录,如 /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
    
    以上内容是否对您有帮助?
  • Icon helper
    Close