【问题标题】:Download file from Amazon S3 with flutter使用颤振从 Amazon S3 下载文件
【发布时间】:2022-05-17 00:12:20
【问题描述】:

我对flutter没有太多经验,我想知道有没有办法下载amazon s3的视频并将文件保存到手机内存中,谢谢

这是视频“https://s3-us-west-1.amazonaws.com/videos.ecuestre.digital/165-3745-40957-1.mp4”的网址

【问题讨论】:

  • 你得到答案了吗?如果你这样做了,请写下你的答案。如果没有,您可以更开放地提出这个问题。对于来自 url 的任何视频文件,答案应该是相同的。

标签: amazon-s3 flutter


【解决方案1】:

这就是我在 flutter 中下载二进制文件的方式: 在您的 pubspec.yaml 中,添加

path_provider: ^0.2.2

包括:

import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:path_provider/path_provider.dart';

代码:

static var httpClient = new HttpClient();
Future<File> _downloadFile(String url, String filename) async {
  var request = await httpClient.getUrl(Uri.parse(url));
  var response = await request.close();
  var bytes = await consolidateHttpClientResponseBytes(response);
  String dir = (await getApplicationDocumentsDirectory()).path;
  File file = new File('$dir/$filename');
  await file.writeAsBytes(bytes);
  return file;
}

函数 consolidateHttpClientResponseBytes() 来自 Flutter 文档: https://docs.flutter.io/flutter/foundation/consolidateHttpClientResponseBytes.html

注意:编辑为more concise version from Simon Lightfoot

【讨论】:

  • 嘿,我必须公开我的存储桶才能通过 url 下载,对吗?
【解决方案2】:

如果您使用的是 aws 资源,则可以使用 Amplify 框架与您的环境进行交互。如果您需要与大量资源进行交互,这将特别有用。查看flutter放大存储docs

【讨论】:

    猜你喜欢
    • 2012-10-10
    • 2012-08-29
    • 2013-05-08
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2020-05-29
    • 2014-11-28
    • 1970-01-01
    相关资源
    最近更新 更多