Skip to content
大纲

兼容工具

兼容说明

大多数基于AWS S3开发的工具都可以设置访问地址。通过设置这些工具的访问地址为FOS的AWS S3服务域名,您就可以使用这些工具访问FOS。下面以一些常用SDK和工具为例,说明如何对接FOS。

说明:

字串含义
$ACCESS_KEYFlyme云账号的Access key
$SECRET_KEYFlyme云账号的Secret key

AWS SDK for Python

  1. 安装Boto类库:
shell
pip install boto3
  1. 使用AWS SDK for python访问Fos
python
import boto3
from botocore.client import Config
s3 = boto3.client(
    's3',
    aws_access_key_id=$ACCESS_KEY,
    aws_secret_access_key=$SECRET_KEY,
    endpoint_url='https://fos.flymeyun.com',
    region_name='US',
    config = Config(
        signature_version='s3v4',
    )
)
# Use S3 client
s3.create_bucket(...)

AWS SDK for Java

  1. 添加依赖包到pom.xml
//添加下面AWS Java SDK依赖包到pom.xml
<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-java-sdk</artifactId>
  <version>1.11.82</version>
</dependency>
  1. 使用AWS SDK for java访问Fos
java
import java.io.IOException;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.*;
import com.amazonaws.services.s3.S3ClientOptions;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.SDKGlobalConfiguration;

public class S3Sample {
    public static void main(String[] args) throws IOException {
        System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true");
        AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials($ACCESS_KEY,$SECRET_KEY));
        s3.setEndpoint("https://fos.flymeyun.com");
        S3ClientOptions options = new S3ClientOptions();
        options.withChunkedEncodingDisabled(true);
        s3.setS3ClientOptions(options);

        // Use S3 Client
        s3.createBucket(...);
    }

}
  1. 编译代码
shell
mvn package

AWS PHP SDK

  1. 安装:下载aws.phar,更多安装方式见AWS PHP SDK安装方式
  2. 使用AWS SDK for PHP访问Fos
php
<?php
  require 'aws.phar';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;

$s3Client = new S3Client([
                         'version'     => 'latest',
                         'region'      => 'bj',
                         'credentials' => [
                         'key'    => $ACCESS_KEY,
                         'secret' => $SECRET_KEY,
                         ],
                         'endpoint' => 'https://fos.flymeyun.com',
                         'signature_version' => 'v4',
                         ]);

$buckets = $s3Client->listBuckets();
foreach ($buckets['Buckets'] as $bucket){
  echo $bucket['Name']."\n";
}

AWS Golang SDK

  1. 安装go get -u github.com/aws/aws-sdk-go
  2. 使用AWS SDK for Golang访问Fos
go
import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
    "github.com/aws/aws-sdk-go/aws/credentials"
)
conf := &aws.Config{
    Region:           aws.String("US"),
    Endpoint:         aws.String("https://fos.flymeyun.com"),
    Credentials:      credentials.NewStaticCredentials($ACCESS_KEY, $SECRET_KEY,, ""),
}
sess := session.Must(session.NewSessionWithOptions(session.Options{Config:*conf}))
svc := s3.New(sess)
getObjectParams := &s3.GetObjectInput{
    Bucket:             aws.String("my-bucket"),
    Key:                aws.String("my-object"),
}
getObjectResp, err := svc.GetObject(getObjectParams)
if err != nil {
    fmt.Println(err.Error())
    return
}

AWS CLI工具

  1. 安装AWS CLI工具pip install awscli
  2. 使用AWS CLI访问FOS
  • 编辑配置文件
shell
$ cat ~/.aws/config
[default]
s3 =
    signature_version = s3v4
region = US

$ cat ~/.aws/credentials
[default]
aws_access_key_id = $ACCESS_KEY
aws_secret_access_key = $SECRET_KEY
  • 执行命令示例
shell
aws --endpoint-url https://fos.flymeyun.com s3 ls  #list bucket
aws --endpoint-url https://fos.flymeyun.com s3 ls s3://${bucketname}  #list object
  • 参考文档

https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html