类型 | 访问方式 | 访问域名 | 作用 |
预置域名 | 存储桶公网域名 | [BucketId].vodpro.[存储地域].eovod.com | 用于公网对媒体文件进行增删改查。 |
| 存储桶内网域名 | [BucketId].vodsrc-internal.[存储地域].eovod.com | 用于在腾讯云内网同地域对媒体文件进行增删查改,支持下载且不产生流量费用。 |
自定义域名 | EdgeOne 加速分发域名 | 客户自定义 | 用于媒体文件的分发播放。 |
ap-guangzhou,存储桶 ID 为 bucketid1,常用语言初始化 S3 客户端并获取对象元数据的代码实现如下所示:import ("context""errors""fmt""net/url""os""github.com/aws/aws-sdk-go-v2/aws""github.com/aws/aws-sdk-go-v2/credentials""github.com/aws/aws-sdk-go-v2/service/s3"smep "github.com/aws/smithy-go/endpoints""github.com/aws/smithy-go/logging")type customEndpointResolverV2 struct {}// ResolveEndpoint 自定义接入点func (r *customEndpointResolverV2) ResolveEndpoint(ctx context.Context,params s3.EndpointParameters) (smep.Endpoint, error) {if params.Bucket == nil || params.Region == nil {return smep.Endpoint{}, errors.New("invalid endpoint param")}return smep.Endpoint{URI: url.URL{Scheme: "https",Host: fmt.Sprintf("%s.vodpro.%s.eovod.com", *params.Bucket, *params.Region),},}, nil}func main() {// 初始化客户端s3cli := s3.New(s3.Options{Credentials: credentials.NewStaticCredentialsProvider("AccessKeyId", // 填入密钥对中的 AccessKeyId"SecretAccessKey", // 填入密钥对中的 SecretAccessKey""),EndpointResolverV2: new(customEndpointResolverV2), // 自定义访问域名UsePathStyle: false, // 请求禁用 path styleLogger: logging.NewStandardLogger(os.Stdout), // 日志打印到标准输出流ClientLogMode: aws.LogRequest | aws.LogResponse, // 打印请求头和响应头Region: "ap-guangzhou", // 存储地域})// 获取媒体文件的元数据_, _ = s3cli.HeadObject(context.TODO(), &s3.HeadObjectInput{Bucket: aws.String("bucketid1"), // Bucket 设置为点播专业版应用中的存储桶 IDKey: aws.String("a/b/c.jpeg"), // 媒体文件在存储桶中的路径})}
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;import software.amazon.awssdk.services.s3.S3Client;import software.amazon.awssdk.services.s3.model.HeadObjectRequest;import software.amazon.awssdk.services.s3.model.HeadObjectResponse;import java.net.URI;public class Main {// 自定义端点解析器public static void main(String[] args) {// 初始化 S3 客户端S3Client s3Client = S3Client.builder().credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("AccessKeyId", // 填入密钥对中的 AccessKeyId"SecretAccessKey" // 填入密钥对中的 SecretAccessKey))).endpointOverride(URI.create("https://vodpro.ap-guangzhou.eovod.com")).region(Region.of("ap-guangzhou")).build();// 获取媒体文件的元数据try {HeadObjectRequest headObjectRequest = HeadObjectRequest.builder().bucket("bucketid1") // Bucket 设置为点播专业版应用中的存储桶 ID.key("a/b/c.jpeg") // 媒体文件在存储桶中的路径.build();HeadObjectResponse headObjectResponse = s3Client.headObject(headObjectRequest);System.out.println("Content Length: " + headObjectResponse.contentLength());} catch (Exception e) {e.printStackTrace();} finally {s3Client.close();}}}
#include <aws/core/Aws.h>#include <aws/core/auth/AWSCredentials.h>#include <aws/s3/S3Client.h>#include <aws/s3/model/HeadObjectRequest.h>#include <iostream>#include <string>int main() {// 初始化 AWS SDKconst Aws::SDKOptions options;InitAPI(options);// 自定义访问域名Aws::Client::ClientConfiguration clientConfig;clientConfig.scheme = Aws::Http::Scheme::HTTPS;clientConfig.endpointOverride = "vodpro.ap-guangzhou.eovod.com";// 创建 S3 客户端const Aws::S3::S3Client s3Client(Aws::Auth::AWSCredentials("AccessKeyId", // 填入密钥对中的 AccessKeyId"SecretAccessKey" // 填入密钥对中的 SecretAccessKey),nullptr, clientConfig);// 创建 HeadObject 请求Aws::S3::Model::HeadObjectRequest request;request.SetBucket("bucketid1"); // Bucket 设置为点播专业版应用中的存储桶 IDrequest.SetKey("a/b/c.jpeg"); // 媒体文件在存储桶中的路径// 发送请求auto outcome = s3Client.HeadObject(request);if (outcome.IsSuccess()) {std::cout << "Head object succeeded!" << std::endl;const auto &object = outcome.GetResult();std::cout << "Content Length: " << object.GetContentLength() << std::endl;} else {const auto error = outcome.GetError();std::cout << "Error: " << error.GetMessage() << std::endl;}// 清理 AWS SDKAws::ShutdownAPI(options);return 0;}
import boto3from botocore.config import Configfrom botocore.exceptions import ClientError# 创建 S3 客户端s3_client = boto3.client('s3',aws_access_key_id='AccessKeyId', # 填入密钥对中的 AccessKeyIdaws_secret_access_key='SecretAccessKey', # 填入密钥对中的 SecretAccessKeyendpoint_url='https://vodpro.ap-guangzhou.eovod.com', # 自定义访问域名config=Config(s3={'addressing_style': 'virtual'}), # 使用 virtual hosted-style)try:# 获取媒体文件的元数据response = s3_client.head_object(Bucket="bucketid1", # Bucket 设置为点播专业版应用中的存储桶 IDKey="a/b/c.jpeg" # 媒体文件在存储桶中的路径)print(response)except ClientError as e:print(f"Error: {e}")
nslookups等指令进行域名解析,若得到形如 10.*.*.*、100.*.*.*或169.254.*.*等形式的 IP,则一般可以进行内网访问。ap-guangzhou,存储桶 ID 为bucketid1,常用语言初始化 S3 客户端并获取对象元数据的代码实现如下所示:import ("context""errors""fmt""net/url""os""github.com/aws/aws-sdk-go-v2/aws""github.com/aws/aws-sdk-go-v2/credentials""github.com/aws/aws-sdk-go-v2/service/s3"smep "github.com/aws/smithy-go/endpoints""github.com/aws/smithy-go/logging")type customEndpointResolverV2 struct {}// ResolveEndpoint 自定义接入点func (r *customEndpointResolverV2) ResolveEndpoint(ctx context.Context,params s3.EndpointParameters) (smep.Endpoint, error) {if params.Bucket == nil || params.Region == nil {return smep.Endpoint{}, errors.New("invalid endpoint param")}return smep.Endpoint{URI: url.URL{Scheme: "https",Host: fmt.Sprintf("%s.vodsrc-internal.%s.eovod.com", *params.Bucket, *params.Region),},}, nil}func main() {// 初始化客户端s3cli := s3.New(s3.Options{Credentials: credentials.NewStaticCredentialsProvider("AccessKeyId", // 填入密钥对中的 AccessKeyId"SecretAccessKey", // 填入密钥对中的 SecretAccessKey""),EndpointResolverV2: new(customEndpointResolverV2), // 自定义访问域名UsePathStyle: false, // 请求禁用 path styleLogger: logging.NewStandardLogger(os.Stdout), // 日志打印到标准输出流ClientLogMode: aws.LogRequest | aws.LogResponse, // 打印请求头和响应头Region: "ap-guangzhou", // 存储地域})// 获取媒体文件的元数据_, _ = s3cli.HeadObject(context.TODO(), &s3.HeadObjectInput{Bucket: aws.String("bucketid1"), // Bucket 设置为点播专业版应用中的存储桶 IDKey: aws.String("a/b/c.jpeg"), // 媒体文件在存储桶中的路径})}
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;import software.amazon.awssdk.services.s3.S3Client;import software.amazon.awssdk.services.s3.model.HeadObjectRequest;import software.amazon.awssdk.services.s3.model.HeadObjectResponse;import java.net.URI;public class Main {// 自定义端点解析器public static void main(String[] args) {// 初始化 S3 客户端S3Client s3Client = S3Client.builder().credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("AccessKeyId", // 填入密钥对中的 AccessKeyId"SecretAccessKey" // 填入密钥对中的 SecretAccessKey))).endpointOverride(URI.create("https://vodsrc-internal.ap-guangzhou.eovod.com")).build();// 获取媒体文件的元数据try {HeadObjectRequest headObjectRequest = HeadObjectRequest.builder().bucket("bucketid1") // Bucket 设置为点播专业版应用中的存储桶 ID.key("a/b/c.jpeg") // 媒体文件在存储桶中的路径.build();HeadObjectResponse headObjectResponse = s3Client.headObject(headObjectRequest);System.out.println("Content Length: " + headObjectResponse.contentLength());} catch (Exception e) {e.printStackTrace();} finally {s3Client.close();}}}
#include <aws/core/Aws.h>#include <aws/core/auth/AWSCredentials.h>#include <aws/s3/S3Client.h>#include <aws/s3/model/HeadObjectRequest.h>#include <iostream>#include <string>int main() {// 初始化 AWS SDKconst Aws::SDKOptions options;InitAPI(options);// 自定义访问域名Aws::Client::ClientConfiguration clientConfig;clientConfig.scheme = Aws::Http::Scheme::HTTPS;clientConfig.endpointOverride = "vodsrc-internal.ap-guangzhou.eovod.com";// 创建 S3 客户端const Aws::S3::S3Client s3Client(Aws::Auth::AWSCredentials("AccessKeyId", // 填入密钥对中的 AccessKeyId"SecretAccessKey" // 填入密钥对中的 SecretAccessKey),nullptr, clientConfig);// 创建 HeadObject 请求Aws::S3::Model::HeadObjectRequest request;request.SetBucket("bucketid1"); // Bucket 设置为点播专业版应用中的存储桶 IDrequest.SetKey("a/b/c.jpeg"); // 媒体文件在存储桶中的路径// 发送请求auto outcome = s3Client.HeadObject(request);if (outcome.IsSuccess()) {std::cout << "Head object succeeded!" << std::endl;const auto &object = outcome.GetResult();std::cout << "Content Length: " << object.GetContentLength() << std::endl;} else {const auto error = outcome.GetError();std::cout << "Error: " << error.GetMessage() << std::endl;}// 清理 AWS SDKAws::ShutdownAPI(options);return 0;}
import boto3from botocore.config import Configfrom botocore.exceptions import ClientError# 创建 S3 客户端s3_client = boto3.client('s3',aws_access_key_id='AccessKeyId', # 填入密钥对中的 AccessKeyIdaws_secret_access_key='SecretAccessKey', # 填入密钥对中的 SecretAccessKeyendpoint_url='https://vodsrc-internal.ap-guangzhou.eovod.com', # 自定义访问域名)try:# 获取媒体文件的元数据response = s3_client.head_object(Bucket="bucketid1", # Bucket 设置为点播专业版应用中的存储桶 IDKey="a/b/c.jpeg" # 媒体文件在存储桶中的路径)print(response)except ClientError as e:print(f"Error: {e}")
文档反馈