2. 初始化

2.1. 确定EndPoint

EndPoint 是NOS各个区域的地址,目前支持以下形式

EndPoint类型 备注
NOS区域域名地址 使用桶所在的区域的NOS域名地址

2.1.1. NOS区域域名地址

进入NOS控制台,在桶的 属性 中可以查找到当前桶所在的区域及域名,桶的域名的后缀部分为 该桶的公网域名,例如:test-logging.nos-eastchina1.126.net中的nos-eastchina1.126.net 为该桶的公网EndPoint。

2.2. 配置密钥

要接入NOS服务,您需要一对有效的AccessKey(包括AccessKeyId与AccessKeySecret)来进行 签名验证,开通服务与AccessKey请参考 访问控制 :

在获取到AccessKeyId与AccessKeySecret之后,可以按照以下的步骤进行初始化

2.3. 新建Client

2.3.1. 使用NOS地区域名创建client

初始化代码如下所示:

import boto3

access_key = "您的accessKeyId"
secret_key = "您的accessKeySecret"
end_point  = "建桶时选择的的区域域名"
client = boto3.client('s3',aws_access_key_id=access_key,aws_secret_access_key=secret_key,endpoint_url=end_point,)

2.4. 设置额外参数

如果您需要修改client的默认配置,可以在实例化Client时添加其他可选参数:

import boto3
import botocore


access_key = "您的accessKeyId"
secret_key = "您的accessKeySecret"
end_point = "建桶时选择的的区域域名" //需要包含scheme

config = botocore.config.Config(
  connect_timeout=1200,
  max_pool_connections=20,
  retries={"max_attempts": 4},
  s3={'addressing_style': 'virtual'} #nos公有云只支持子域名的方式
)

client = boto3.client(
    's3',
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_key,
    endpoint_url=end_point,#必须包含scheme,scheme中的http/https决定了使用什么方式上传对象
    config=config
)

具体参数见下表:

参数 描述 默认值
connect_timeout 建立连接的超时时间(单位:秒) 默认:Socket的全局Timeout值
max_pool_connections 允许打开的最大HTTP连接数 默认:16
retries 请求失败后最大的重试次数 默认:2