tencent_cos_sdk_chassis 0.4.1 copy "tencent_cos_sdk_chassis: ^0.4.1" to clipboard
tencent_cos_sdk_chassis: ^0.4.1 copied to clipboard

A Extensible Tencent COS Dart SDK you can easily extend any API that you want based on the extensible chassis code.

example/lib/main.dart

import 'package:example/pages/delete_object_page.dart';
import 'package:example/pages/get_object_page.dart';
import 'package:example/pages/get_object_url_page.dart';
import 'package:example/pages/pub_object_page.dart';
import 'package:example/proxy.dart';
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:get_it/get_it.dart';
import 'package:tencent_cos_sdk_chassis/tencent_cos_sdk_chassis.dart';

final getIt = GetIt.instance;

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await dotenv.load(fileName: 'dev.env');

  getIt.registerSingleton<COSClient>(
    COSClient(
        config: COSConfig(
          secretId: dotenv.get('secretId'),
          secretKey: dotenv.get('secretKey'),
          appid: dotenv.get('appid'),
          region: dotenv.get('region'),
          scheme: 'http',
        ),
        loggerLevel: Level.all),
  );

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Tencent COS Plus',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Tencent COS Plus'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  handleToPage(Widget component) {
    Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => Scaffold(
            appBar: AppBar(),
            body: component,
          ),
        ));
  }

  @override
  void initState() {
    super.initState();
    MyProxy.startProxy();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        children: [
          ListTile(
            title: const Row(
              children: [
                Icon(Icons.image_outlined),
                Text(' 获取链接测试'),
              ],
            ),
            onTap: () => handleToPage(const GetObjectUrlPage()),
          ),
          ListTile(
            title: const Row(
              children: [
                Icon(Icons.delete_forever_outlined),
                Text(' 删除对象测试'),
              ],
            ),
            onTap: () => handleToPage(const DeleteObjectPage()),
          ),
          ListTile(
            title: const Row(
              children: [
                Icon(Icons.download_done_outlined),
                Text(' 下载对象测试'),
              ],
            ),
            onTap: () => handleToPage(const GetObjectPage()),
          ),
          ListTile(
            title: const Row(
              children: [
                Icon(Icons.upload_file_outlined),
                Text(' 上传对象测试'),
              ],
            ),
            onTap: () => handleToPage(const PutObjectPage()),
          ),
        ],
      ),
    );
  }
}
1
likes
155
pub points
3%
popularity

Publisher

unverified uploader

A Extensible Tencent COS Dart SDK you can easily extend any API that you want based on the extensible chassis code.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

convert, crypto, flutter, logger, mime, xml

More

Packages that depend on tencent_cos_sdk_chassis