S3ゲートウェイ
S3ゲートウェイ(ゲートウェイ)はS3互換性を提供APIを ストレージ管理ために、開発者はs3api用のアプリケーションを開発することができます。これは、標準のS3 SDKまたはツールを使用して、ある、またはゲートウェイと対話することができ、独自の標準建設S3 S3を要求します。
制限事項
S3 APIゲートウェイの使用は、APIの数をサポートしていない、提供、詳細ができminio を指します。現段階で大部分は現在サポートされていないAPIのAPI外、ラムダS3ゲートウェイサポート機能、インターフェースおよび限定されるものではなく、基本的なファイル操作、使用を避けて下さい。
S3ゲートウェイたとえば、64Mに次の例を使用しないように設定するためのツールやSDKの必要性を使用するようにする場合、現在、マルチパートのAPIをサポートしていません。
設定と操作
デフォルトゲートウェイの構成S3 次のように部分が、説明されます。~/.lambda_storagecli/config/user.toml
[gateway]
[gateway]
# 服务监听的地址
address = "127.0.0.1:9002"
# 用于访问服务的key
access_key = "accesskey"
secret_key = "secretkey"
ときにuser.toml
適切に構成され、コマンドラインから起動することができます ./storagecli gateway run --account env --broker.extra_order_id XXX --debug
注文のS3ゲートウェイサービスを開始し、開始するには
複数のパラメータがすることから始めることができ./storagecli gateway run -h
鑑賞
CLIの例AWS
まず、インストールawscli。
その後、鍵は、ゲートウェイS3にアクセスするように構成されています。
$ aws configure
AWS Access Key ID [None]: accesskey
AWS Secret Access Key [None]: secretkey
Default region name [None]:
Default output format [None]:
次に、マルチしきい値の設定、aws configure set default.s3.multipart_threshold 64MB
使用前にマルチ64Mよりも大きいことを示します
次に、基本的なファイル操作を行うことができます。
バケットを作成します。
aws s3 --endpoint=http://localhost:9002/ mb s3://awstest
ファイルのアップロード
aws s3 --endpoint=http://localhost:9002/ cp /path/to/your/file s3://awstest
コンテンツバケットリスト
aws s3 --endpoint=http://localhost:9002/ ls s3://awstest
ファイルのダウンロード
aws s3 --endpoint=http://localhost:9002/ cp s3://awstest/your-file /tmp/new-file
ファイルの削除
AWS PythonのSDKの例
まず、boto3をインストール pip install boto3
次に、閾値の調整マルチパート
#!/usr/bin/env python
# coding: utf-8
"""
refer https://docs.min.io/docs/how-to-use-aws-sdk-for-python-with-minio-server.html
"""
import boto3
from botocore.client import Config
from boto3.s3.transfer import TransferConfig
s3 = boto3.resource('s3',
endpoint_url='http://localhost:9002',
aws_access_key_id='accesskey',
aws_secret_access_key='secretkey',
config=Config(signature_version='s3v4'),
region_name='')
# create bucket
s3.Bucket('awstest').create()
# list bucket
print("buckets:", [bucket.name for bucket in s3.buckets.all()])
# upload file
# https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3.html#multipart-transfers
MB = 2 ** 20
cfg = TransferConfig(multipart_threshold=64*MB)
s3.Bucket('awstest').upload_file('/path/to/your/file','images/your-file', Config=cfg)
# list file
print("objects in bucket: awstest", [obj.key for obj in s3.Bucket('awstest2').objects.filter(Prefix='images/')])
# download file
s3.Bucket('awstest').download_file('images/your-file', '/tmp/newfile')
また、提供するSDK minioを使用することができますMinio文書は例を詳細に説明している、ここではそれらを繰り返しません