SDKs
Sử dụng các SDK phổ biến để tích hợp với Vietnix Cloud S3
Vietnix Cloud S3 Storage tương thích hoàn toàn với S3 API, cho phép bạn sử dụng nhiều SDK chính thức của AWS và thư viện cộng đồng ở nhiều ngôn ngữ lập trình. Bên dưới là ví dụ cách kết nối và thực hiện thao tác cơ bản với một số SDK phổ biến.
1. Python (Boto3)
import boto3
s3 = boto3.client(
's3',
endpoint_url='https://s3.vn-hcm-1.vietnix.cloud',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
region_name='vn-hcm-1'
)
# Liệt kê bucket
response = s3.list_buckets()
print(response['Buckets'])
# Tải lên tệp
s3.upload_file('local-file.txt', 'your-bucket-name', 'remote-file.txt')
2. Node.js (AWS SDK v3)
const { S3Client, ListBucketsCommand, PutObjectCommand } = require('@aws-sdk/client-s3');
const s3 = new S3Client({
endpoint: 'https://s3.vn-hcm-1.vietnix.cloud',
region: 'vn-hcm-1',
credentials: {
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_KEY'
},
forcePathStyle: true
});
// Liệt kê bucket
s3.send(new ListBucketsCommand({})).then(data => console.log(data.Buckets));
// Tải lên tệp
const fs = require('fs');
const fileStream = fs.createReadStream('local-file.txt');
s3.send(new PutObjectCommand({
Bucket: 'your-bucket-name',
Key: 'remote-file.txt',
Body: fileStream
}));
3. Go (AWS SDK v2)
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
sess := session.Must(session.NewSession(&aws.Config{
Region: aws.String("vn-hcm-1"),
Endpoint: aws.String("https://s3.vn-hcm-1.vietnix.cloud"),
S3ForcePathStyle: aws.Bool(true),
Credentials: credentials.NewStaticCredentials("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY", ""),
}))
svc := s3.New(sess)
// Liệt kê bucket
result, _ := svc.ListBuckets(nil)
for _, b := range result.Buckets {
fmt.Println(*b.Name)
}
// Tải lên tệp
file, _ := os.Open("local-file.txt")
defer file.Close()
svc.PutObject(&s3.PutObjectInput{
Bucket: aws.String("your-bucket-name"),
Key: aws.String("remote-file.txt"),
Body: file,
})
4. Java (AWS SDK v2)
S3Client s3 = S3Client.builder()
.endpointOverride(URI.create("https://s3.vn-hcm-1.vietnix.cloud"))
.region(Region.of("vn-hcm-1"))
.credentialsProvider(StaticCredentialsProvider.create(
AwsBasicCredentials.create("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY")))
.forcePathStyle(true)
.build();
// Liệt kê bucket
ListBucketsResponse buckets = s3.listBuckets();
buckets.buckets().forEach(b -> System.out.println(b.name()));
// Tải lên tệp
s3.putObject(PutObjectRequest.builder()
.bucket("your-bucket-name")
.key("remote-file.txt")
.build(),
RequestBody.fromFile(Paths.get("local-file.txt")));
5. PHP (AWS SDK for PHP)
- Cài đặt AWS SDK for PHP qua Composer
composer require aws/aws-sdk-php
- Ví dụ code PHP
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
// Thông tin xác thực Vietnix Cloud S3 của bạn (lấy từ panel Vietnix)
$accessKey = 'YOUR_ACCESS_KEY'; // ví dụ: AKIAxxxxxxxxxxxxxxxx
$secretKey = 'YOUR_SECRET_KEY'; // ví dụ: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
// Cấu hình Vietnix S3
$s3Client = new S3Client([
'version' => 'latest', // hoặc '2006-03-01'
'region' => 'auto', // Có thể là bất kỳ, Vietnix sẽ bỏ qua
'endpoint' => 'https://s3.vn-hcm-1.vietnix.cloud',
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey,
],
// Tùy chọn quan trọng cho các endpoint không phải AWS
'use_path_style_endpoint' => true, // Rất quan trọng đối với Vietnix
'bucket_endpoint' => false,
]);
// Kiểm tra: Liệt kê tất cả bucket
try {
$result = $s3Client->listBuckets();
echo "Các bucket:\n";
foreach ($result['Buckets'] as $bucket) {
echo "- " . $bucket['Name'] . " (tạo lúc: " . $bucket['CreationDate'] . ")\n";
}
} catch (AwsException $e) {
echo "Lỗi: " . $e->getMessage();
}
// Ví dụ: Tải lên tệp
$bucketName = 'your-bucket-name'; // Phải đã tồn tại trong panel Vietnix
$key = 'test-folder/hello-world.txt';
$filePath = __DIR__ . '/hello.txt';
try {
$result = $s3Client->putObject([
'Bucket' => $bucketName,
'Key' => $key,
'Body' => fopen($filePath, 'r'),
'ACL' => 'public-read', // tùy chọn
]);
echo "Tải lên tệp thành công!\n";
echo "URL: " . $result->get('ObjectURL') . "\n";
} catch (AwsException $e) {
echo "Tải lên thất bại: " . $e->getMessage();
}
thông tin
- Thay
YOUR_ACCESS_KEY,YOUR_SECRET_KEY, vàyour-bucket-namebằng thông tin và tên bucket thực tế của bạn. - Luôn bảo mật thông tin xác thực và thay đổi định kỳ.
- Với cách dùng nâng cao, tham khảo tài liệu chính thức của từng SDK.