当前,社区为 TOS 提供了 Flutter SDK 的支持,并发布到了 pub.dev 仓库。您可以使用 Flutter SDK 访问 TOS ,实现资源的上传和下载。本文以 Android Studio 为例,介绍使用 Flutter SDK 访问 TOS 的操作步骤。
在本地配置长期访问凭证。
说明
关于获取 Access Key ID 和 Secret Access Key 的具体步骤,请参见 Access Key 管理。
在 macOS 系统配置长期访问凭证的操作如下:
打开终端并执行以下命令打开文件。
nano ~/.bash_profile
在文件末尾添加 AKSK 信息。
export TOS_ACCESS_KEY=AKTPYmI1Z**** export TOS_SECRET_KEY=T1dJM01UU****
保存文件并退出。
执行以下命令生效配置信息。
source ~/.bash_profile
执行以下命令验证配置信息。
echo $TOS_ACCESS_KEY echo $TOS_SECRET_KEY
如果配置成功,则返回如下示例:
AKTPYmI1Z**** T1dJM01UU****
在 Linux 系统配置长期访问凭证的操作如下:
打开终端并执行以下命令打开文件。
sudo vim /etc/profile
在文件末尾添加 AKSK 信息。
export TOS_ACCESS_KEY=AKTPYmI1Z**** export TOS_SECRET_KEY=T1dJM01UU****
保存文件并退出。
执行以下命令生效配置信息。
source /etc/profile
执行以下命令验证配置信息。
echo $TOS_ACCESS_KEY echo $TOS_SECRET_KEY
如果配置成功,则返回如下示例:
AKTPYmI1Z**** T1dJM01UU****
在 Windows 系统配置长期访问凭证的操作如下:
打开命令行工具,执行以下命令,添加 AKSK 信息。
set TOS_ACCESS_KEY=AKTPYmI1Z**** set TOS_SECRET_KEY=T1dJM01UU****
执行以下命令生效配置信息。
setx TOS_ACCESS_KEY "%TOS_ACCESS_KEY%" setx TOS_SECRET_KEY "%TOS_SECRET_KEY%"
重启命令行工具,然后执行以下命令验证配置信息。
echo %TOS_ACCESS_KEY% echo %TOS_SECRET_KEY%
如果配置成功,则返回如下示例:
AKTPYmI1Z**** T1dJM01UU****
执行以下命令,安装 TOS Flutter SDK。
说明
关于 TOS Flutter SDK 的详细介绍,请参见 tos package。
flutter pub add tos
使用 Flutter SDK 访问 TOS。
根据实际情况修改以下代码中的 region
、endpoint
,然后运行以下代码。
说明
设置 endpoint
参数时,访问域名前需要添加 http://
,例如 http://tos-cn-beijing.volces.com
。关于 Endpoint 的详细介绍,请参见地域和访问域名(Endpoint)。
import 'dart:io' show Platform; import 'package:tos/enum.dart'; import 'package:tos/exception.dart'; import 'package:tos/tos.dart'; void main() async { Map<String, String> envVars = Platform.environment; TosClient client = TosClientBuilder() .ak(envVars['TOS_ACCESS_KEY'] ?? '') .sk(envVars['TOS_SECRET_KEY'] ?? '') .region('cn-beijing') .endpoint('https://tos-cn-beijing.volces.com') .build(); var output = await client.listBuckets(ListBucketsInput()); print(output.requestId); for(var bucket in output.buckets){ print(bucket.name); } client.close(); }
如果返回存储桶的名称,说明使用 Flutter SDK 访问 TOS 成功。
您还可以参考接口文档自行编译代码,使用 Flutter SDK 实现创建存储桶、删除对象等操作,关于 Flutter SDK 的更多接口文档,请参见 tos library。