TOS 支持 Flutter SDK,您可以使用 Flutter 访问 TOS ,实现资源的上传和下载。本文以 Android Studio 为例,介绍使用 Flutter 访问 TOS 的操作步骤。
导入 Flutter SDK 的依赖。
执行以下命令,导入 http 模块。
flutter pub get http
执行以下命令,导入 crypto 模块。
flutter pub get crypto
创建 Flutter 应用。
创建并运行 Flutter SDK。
将 tos_flutter_demo.dart 文件放到 lib
目录下。
在 tos_flutter_demo.dart 文件中设置 ak
、sk
、endpoint
、bucket
、region
等参数。
以下代码块仅展示部分内容,详细内容,请参见 tos_flutter_demo.dart 文件。
说明
endpoint
参数时,访问域名前需要添加 http://
,例如 http://tos-cn-beijing.volces.com
。关于 Endpoint 的详细介绍,请参见地域和访问域名(Endpoint)。import 'dart:convert'; import 'package:crypto/crypto.dart'; import 'package:http/http.dart' as http; const String ak = 'AKLTM2NlN2E5Yzg2ZkNDBjMGIzZGU3MDllMzE4NzU****'; // Access Key ID const String sk = 'T1RkbVpHTmlNakl3TWpobE5EVmlObUkzTURrMU16SZakF4TWpNME0y****'; //Secret Access Key const String token = '/** Provide your Token **/'; //,使用临时访问凭证访问 TOS 时,需要设置该参数。 const String endpoint = 'http://tos-cn-beijing.volces.com'; //TOS 访问域名 const String bucket = 'test'; //存储桶的名称 const String object = 'data.txt'; //对象名称 const String region = 'cn-beijing'; //存储桶所在地域 const String service = 'tos'; const String request = 'request'; const String algorithm = 'TOS4-HMAC-SHA256'; void main() { //如果你要执行对应操作,您需要去掉操作的注释,即删除双斜杠(//)。 // listBuckets(); putObject(); // listObjects(); // getObject(); // deleteObject(); // multipartUpload(); } // 上传对象 void putObject() async { var requestUrl = getBucketRequestUrl(objectKey: object); var headers = getAuthorization(requestUrl, 'PUT'); try { var resp = await http.put(requestUrl, headers: headers, body: 'hello world'); print('Response status: ${resp.statusCode}'); if (resp.statusCode >= 300) { var body = jsonDecode(resp.body); printError(body); } else { print('putObject succeed'); } } catch (err) { print(err); } } ......
完成参数设置后,单击 tos_flutter_demo.dart,然后单击 run tos_flutter_demo.dart。
预期返回以下内容:
/data.txt canonicalRequest: PUT /data.txt host:test.tos-cn-beijing.volces.com host e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852**** Response status: 200 putObject succeed Process finished with exit code 0