Appearance
兼容工具
兼容说明
大多数基于AWS S3开发的工具都可以设置访问地址。通过设置这些工具的访问地址为FOS的AWS S3服务域名,您就可以使用这些工具访问FOS。下面以一些常用SDK和工具为例,说明如何对接FOS。
说明:
字串 | 含义 |
---|---|
$ACCESS_KEY | Flyme云账号的Access key |
$SECRET_KEY | Flyme云账号的Secret key |
AWS SDK for Python
- 安装Boto类库:
shell
pip install boto3
- 使用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
- 添加依赖包到pom.xml
//添加下面AWS Java SDK依赖包到pom.xml
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.82</version>
</dependency>
- 使用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(...);
}
}
- 编译代码
shell
mvn package
AWS PHP SDK
- 安装:下载aws.phar,更多安装方式见AWS PHP SDK安装方式。
- 使用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
- 安装go get -u github.com/aws/aws-sdk-go
- 使用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工具
- 安装AWS CLI工具pip install awscli
- 使用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