70 lines
1.7 KiB
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();
|
|
}
|
|
}
|