@aws/s3-managed-downloader

中文文档
0.9.0发布于 2018/09/12CommonJS近 30 天下载 3891

S3 管理下载器

中文使用文档
文档目录12 节
  1. 安装
  2. 在节点.js
  3. 文档
  4. 配置
  5. 导入管理下载软件包
  6. 用默认部分大小和货币创建管理下载
  7. 创建自定义部分大小和货币管理下载
  8. 实例
  9. 1. 使用管理下载对象为 S3 上的文件创建下载流
  10. 2. 使用管理下载对象为 S3 上的文件的字节创建下载流
  11. 开幕问题
  12. 许可证

AWS SDK JavaScript S3 管理下载

JavaScript SDK管理下载可以用于自定义的S3下载. 客户端可以配置管理下下载的选项,例如块大小和同时传输的次数.

安装

在节点.js

这个软件包目前只在Node.js版本6+中工作. 由npm包管理器为Node.js安装管理下载包. 在终端窗口中输入以下命令.

    npm install @aws/s3-managed-download

文档

您可以为管理下载软件包找到完整的文档 这里。 。 。 .

配置

您可以设置最大部分大小和最大货币选项, 为管理下下载自定义部分大小和并行下载次数 。 最大PartSize 选项可以控制每个传输部分的字节大小。 最大货币选项指定将平行下载的部件数量和随时在内存中缓冲的最大部件数量.

导入管理下载软件包

您需要一个 S3 客户端来创建一个有管理的下载, 所以将 aws- sdk 与有管理的下载软件包一起导入 .

Java 脚本

    const S3 = require('aws-sdk/clients/s3');
    const ManagedDownloader = require('@aws/s3-managed-download').ManagedDownloader;

类型脚本

    import * as S3 from 'aws-sdk/clients/s3';
    import { ManagedDownloader, GetObjectStreamInput, ManagedDownloaderOptions } from '@aws/s3-managed-download';

用默认部分大小和货币创建管理下载

创建 AWS S3 客户端,并将客户端传入"管理下载"构建器,以创建"管理下载",部分大小为 5MB,货币为 1.

Java 脚本

    const s3 = new S3();
    const managedDownloader = new ManagedDownloader(s3);

类型脚本

    const s3:S3 = new S3();
    const managedDownloader:ManagedDownloader = new ManagedDownloader(s3);

创建自定义部分大小和货币管理下载

创建 AWS S3 客户端并管理下载选项. 将客户端和选项传入管理下载构建器,以创建自定义部分大小为10MB和货币为5的"管理下载".

Java 脚本

    const s3 = new S3();
    const options = {
        maxPartSize: 10 * 1024 * 1024,
        maxConcurrency: 5
    };
    const managedDownloader = new ManagedDownloader(s3, options);

类型脚本

    const s3:S3 = new S3();
    const options:ManagedDownloaderOptons = {
        maxPartSize: 10 * 1024 * 1024,
        maxConcurrency: 5
    };
    const managedDownloader:ManagedDownloader = new ManagedDownloader(s3, options);

实例

目前,"管理下载"只包含一个流出下载操作,它可以为整个文件或特定范围或文件的一部分工作. 以下是一些例子: 如何使用“管理下载”Get ObjectStream下载操作.

1. 使用管理下载对象为 S3 上的文件创建下载流

从桶中获取“ 例- 键” 文件, 并使用“ objectStream” 方法创建本地文件 .

Java 脚本

    const S3 = require('aws-sdk/clients/s3');
    const ManagedDownloader = require('@aws/s3-managed-download').ManagedDownloader;
    const fs = require('fs');

    const s3 = new S3();
    const managedDownloader = new ManagedDownloader(s3);

    const params = {
        Bucket: 'example-bucket',
        Key: 'example-key'
    };
    // create a write stream for a file
    const writeStream = fs.createWriteStream('example-file-path');
    
    managedDownloader.getObjectStream(params)
    .then((stream) => {
        stream.pipe(writeStream);
    }, (err) => {
        writeStream.end();
        console.error(err);
    });

类型脚本

    import * as S3 from 'aws-sdk/clients/s3';
    import { ManagedDownloader, GetObjectStreamInput, ManagedDownloaderOptions } from '@aws/s3-managed-download';
    import * as fs from 'fs';

    const s3:S3 = new S3();
    const managedDownloader:ManagedDownloader = new ManagedDownloader(s3);

    const params:GetObjectStreamInput = {
        Bucket: 'example-bucket',
        Key: 'example-key'
    };
    // create a write stream for a file
    const writeStream:fs.WriteStream = fs.createWriteStream('example-file-path');
    
    managedDownloader.getObjectStream(params)
    .then((stream) => {
        stream.pipe(writeStream);
    }, (err) => {
        writeStream.end();
        console.error(err);
    });

2. 使用管理下载对象为 S3 上的文件的字节创建下载流

从桶中获取“ 例- 键” 文件, 并使用“ objectStream” 方法在“ 例- 文件- 路径” 上写入本地文件的字节100- 150 .

Java 脚本

    const S3 = require('aws-sdk/clients/s3');
    const ManagedDownloader = require('@aws/s3-managed-download').ManagedDownloader;
    const fs = require('fs');
    
    const s3 = new S3();
    const managedDownloader = new ManagedDownloader(s3);

    const params = {
        Bucket: 'example-bucket',
        Key: 'example-key',
        Range: '100-150'
    };
    // create a write stream for a file starting at byte 100
    const writeStream = fs.createWriteStream('example-file-path', {start:100});
    
    managedDownloader.getObjectStream(params)
    .then((stream) => {
        stream.pipe(writeStream);
    }, (err) => {
        writeStream.end();
        console.error(err);
    });

类型脚本

    import * as S3 from 'aws-sdk/clients/s3';
    import { ManagedDownloader, GetObjectStreamInput, ManagedDownloaderOptions } from '@aws/s3-managed-download';
    import * as fs from 'fs';

    const s3:S3 = new S3();
    const managedDownloader:ManagedDownloader = new ManagedDownloader(s3);
    
    const params:GetObjectStreamInput = {
        Bucket: 'example-bucket',
        Key: 'example-key',
        Range: '100-150'
    };
    // create a write stream for a file starting at byte 100
    const writeStream:fs.WriteStream = fs.createWriteStream('example-file-path', {start:100});
    
    managedDownloader.getObjectStream(params)
    .then((stream) => {
        stream.pipe(writeStream);
    }, (err) => {
        writeStream.end();
        console.error(err);
    });

开幕问题

如果您找到任何错误或想要请求新特性, 请先检查已有的问题 。 如果没有问题,就开出一个新问题。 如果问题涉及错误,请包括堆栈痕量和重现的方法.

许可证

这个库根据Apache 2.0许可证获得许可.

版本与发布记录

@aws/s3-managed-downloader 共发布 1 个版本,首次发布于 2018/09/12;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.9.0latest2018/09/128 年前

关于 @aws/s3-managed-downloader 的常见问题

@aws/s3-managed-downloader 是什么?

S3 管理下载器

如何安装 @aws/s3-managed-downloader?

在项目目录运行 npm install @aws/s3-managed-downloader,或使用 pnpm add / yarn add / bun add。

@aws/s3-managed-downloader 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/aws__s3-managed-downloader 是否存在。

@aws/s3-managed-downloader 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws/s3-managed-downloader 可以商用吗?

@aws/s3-managed-downloader 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@aws/s3-managed-downloader 的下载量有多少?

根据 npm 官方下载统计,@aws/s3-managed-downloader 在 2026/10/08 – 2026/11/06 这 30 天内被下载 3,891 次,日均约 130 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws/s3-managed-downloader 还在维护吗?

最新版本 0.9.0 发布于 2018/09/12(8 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/09/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。