Flutter阿里云OSS存储插件flutter_aliyun_oss的使用
Flutter阿里云OSS存储插件flutter_aliyun_oss的使用
flutter_aliyun_oss
插件用于在 Flutter 应用中上传文件到阿里云对象存储(OSS)。
压缩需求
当前版本已经移除了图片压缩和宽高获取功能。如果需要对视频或图片进行压缩,可以使用 media_asset_utils
包。
- ✅ 视频硬编码压缩以及图片仿微信
Luban
压缩 - ✅ 视频缩略图获取
- ✅ 视频和图片的 width、height、orientation 等信息获取
- ✅ 保存到相册,支持 Android Q+
示例代码
import 'package:flutter/material.dart';
import 'package:flutter_aliyun_oss/flutter_aliyun_oss.dart';
void main() {
// 初始化OSSClient
OSSClient.init(
endpoint: 'oss-cn-hangzhou.aliyuncs.com', // OSS服务地址
bucket: 'your_bucket_name', // OSS Bucket 名称
credentials: () {
// 返回未来凭证
return Credentials.fromJson(response.data);
// 或者配置凭证
return Credentials(
accessKeyId: 'your_access_key_id', // Access Key ID
accessKeySecret: 'your_access_key_secret', // Access Key Secret
);
},
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('OSS Upload Example'),
),
body: Center(
child: ElevatedButton(
onPressed: uploadFile,
child: Text('Upload File'),
),
),
),
);
}
Future<void> uploadFile() async {
try {
// 创建一个OSSObject实例
OSSObject object = OSSObject(
bucket: 'your_bucket_name', // OSS Bucket 名称
endpoint: 'oss-cn-hangzhou.aliyuncs.com', // OSS服务地址
path: 'path/to/your/file.txt', // 文件路径
);
// 上传文件到OSS
final result = await OSSClient.shared.putObject(object);
print('File uploaded successfully: $result');
} catch (e) {
print('Error uploading file: $e');
}
}
}
更多关于Flutter阿里云OSS存储插件flutter_aliyun_oss的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter阿里云OSS存储插件flutter_aliyun_oss的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_aliyun_oss
是一个用于在 Flutter 应用中集成阿里云对象存储(OSS)的插件。使用该插件,你可以方便地上传、下载、删除和管理阿里云 OSS 中的文件。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 flutter_aliyun_oss
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_aliyun_oss: ^版本号
然后运行 flutter pub get
来安装插件。
初始化插件
在使用插件之前,你需要进行初始化。通常,你需要在 main.dart
或其他合适的地方进行初始化:
import 'package:flutter_aliyun_oss/flutter_aliyun_oss.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化阿里云OSS
await FlutterAliyunOss.init(
endpoint: 'your-oss-endpoint', // 你的OSS endpoint
bucketName: 'your-bucket-name', // 你的Bucket名称
stsToken: 'your-sts-token', // STS Token
accessKeyId: 'your-access-key-id', // AccessKey ID
accessKeySecret: 'your-access-key-secret', // AccessKey Secret
securityToken: 'your-security-token', // Security Token
);
runApp(MyApp());
}
上传文件
你可以使用 upload
方法来上传文件到阿里云 OSS:
import 'package:flutter_aliyun_oss/flutter_aliyun_oss.dart';
Future<void> uploadFile() async {
try {
final response = await FlutterAliyunOss.upload(
filePath: 'path/to/your/file', // 本地文件路径
objectKey: 'your-object-key', // OSS中的对象键
);
print('File uploaded: ${response.url}');
} catch (e) {
print('Error uploading file: $e');
}
}
下载文件
你可以使用 download
方法来从阿里云 OSS 下载文件:
import 'package:flutter_aliyun_oss/flutter_aliyun_oss.dart';
Future<void> downloadFile() async {
try {
final response = await FlutterAliyunOss.download(
objectKey: 'your-object-key', // OSS中的对象键
savePath: 'path/to/save/file', // 保存文件的本地路径
);
print('File downloaded: ${response.filePath}');
} catch (e) {
print('Error downloading file: $e');
}
}
删除文件
你可以使用 delete
方法来删除阿里云 OSS 中的文件:
import 'package:flutter_aliyun_oss/flutter_aliyun_oss.dart';
Future<void> deleteFile() async {
try {
await FlutterAliyunOss.delete(
objectKey: 'your-object-key', // OSS中的对象键
);
print('File deleted');
} catch (e) {
print('Error deleting file: $e');
}
}