yx_oss_flutter/example/simple_example.dart

70 lines
1.7 KiB
Dart

import 'dart:typed_data';
import 'package:yx_oss/yx_oss.dart';
/// 简单使用示例
/// 展示基本的上传功能
void main() async {
print('YX OSS 简单示例');
// 创建认证提供者
const authProvider = StaticAuthProvider(
accessKeyId: 'your_access_key_id',
accessKeySecret: 'your_access_key_secret',
);
// 创建配置提供者
const configProvider = StaticConfigProvider(
endpoint: 'oss-cn-hangzhou.aliyuncs.com',
bucketName: 'your-bucket-name',
directory: 'uploads',
);
// 创建OSS客户端配置
const config = YxOSSConfig(
authProvider: authProvider,
configProvider: configProvider,
);
// 创建OSS客户端
final client = YxOSSClient(config);
try {
// 初始化客户端
await client.initialize();
// 准备上传的文件数据
final fileData = Uint8List.fromList('Hello, YX OSS!'.codeUnits);
// 创建上传选项
final options = UploadOptions(
overwrite: true,
contentType: 'text/plain',
callbacks: UploadCallbacks(
onStart: () => print('开始上传...'),
onProgress: (sent, total) {
final progress = (sent / total * 100).toStringAsFixed(1);
print('上传进度: $progress% ($sent/$total)');
},
onSuccess: (result) => print('上传成功'),
onError: (error) => print('上传失败'),
onComplete: () => print('上传完成'),
),
);
// 执行上传
final result = await client.uploadBytes(
fileData,
'simple-test.txt',
options: options,
);
print('上传成功: ${result.url}');
} catch (e) {
print('操作失败: $e');
} finally {
// 释放资源
client.dispose();
}
}