从亚马逊 s3 流式传输文件

2024-06-30

我在尝试从 amazon s3 流式传输文件时遇到问题。基本上,我的文件存储在 amazom s3 上,我无法提供对这些文件的直接访问,因为用户需要进行身份验证。我正在尝试找到一种流式传输文件的方法,而无需将每个文件从亚马逊下载到我的服务器上,然后从我的服务器下载到最终客户端。我只是希望能够直接流式传输文件,但似乎 .NET 中的大多数流读取器类都无法执行此操作。如果我错了,请纠正我。


您可以通过服务器将文件从 Amazon S3 流式传输到客户端,而无需将文件下载到服务器,方法是打开 Amazon S3 文件的流,然后从中读取数据并在客户端流上写入(逐个缓冲区)。

示例代码:

byte[] buffer = new byte[BUFFER_SIZE];                
GetObjectRequest getObjRequest = new GetObjectRequest().WithBucketName(Bucket_Name).WithKey(Object_Key);

using (GetObjectResponse getObjRespone = amazonS3Client.GetObject(getObjRequest))
using (Stream amazonStream = getObjRespone.ResponseStream)
{
    int bytesReaded = 0;        
    Response.AddHeader("Content-Length", getObjRespone.ContentLength.ToString());

    while ((bytesReaded = amazonStream.Read(buffer, 0, buffer.Length)) > 0 && Response.IsClientConnected)
    {
        Response.OutputStream.Write(buffer, 0, bytesReaded);
        Response.OutputStream.Flush();
        buffer = new byte[BUFFER_SIZE];
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从亚马逊 s3 流式传输文件 的相关文章

随机推荐

  • Xamarin Macintosh 客户 URL 协议句柄传递的参数

    我编写了一个处理自定义协议的 Macintosh 应用程序
  • CSS 链接图像带有下划线(“a”显示设置为阻止)

    我有一个菜单 我希望每个单独的项目中文本周围的所有空间都能将用户带到指定的页面 我在网上查了一下 发现最好的解决方案是将 a 显示设置为阻止 如下 a display block height 100 text decoration und
  • 让 MSBuild 将文件输出到日志?

    我有一个输出到文件的程序 我正在从 MSBuild 项目运行它 我希望将此输出写入 StdOut 以便我们的构建代理 TeamCity 可以获取它 如何让 MSBuild 将文件内容转储到输出 DOS命令type http www comp
  • UpdatedTransactions(transactionState == .restored) 与 paymentQueueRestoreCompletedTransactionsFinished

    正如标题所描述的 实际有什么不同 如果我有这个 func paymentQueue queue SKPaymentQueue updatedTransactions transactions SKPaymentTransaction for
  • 从 google play 中提取统计信息

    我正在建立一些统计数据 并希望获得来自 google play 应用程序商店 的统计数据 最受欢迎 下载量 价格等信息 有谁知道是否有这个 API 或者我必须自己抓取它 有一个名为 android market api 的项目http co
  • PHP SFTP 简单文件上传

    我正在使用 phpseclib SFTP 类 并尝试上传这样的文件 sftp new Net SFTP mydomain com if sftp gt login user password exit Login Failed sftp g
  • java中的“main”可以返回字符串吗?

    java中的public static void main String args 是否有可能返回String代替void 如果是 怎么办 public static String main String args 代替 public st
  • jQuery、$(element).click 在 ie<9 上不起作用

    我有一个像这样的 jQuery 点击事件 document ready function id secteur activite click function console log ok 在 firefox 和 ie9 上 当我单击我的元
  • 定义Python类时,如何在其中设置随机变量?

    假设我有一个名为Person 其中只有该人的姓名和性别 性别应从男性和女性中随机选择 为此 我导入random randint 功能 根据随机int确定随机性别 import random class Person alias random
  • Json.net 将数字属性序列化为字符串

    我正在使用 JsonConvert SerializeObject 序列化模型对象 服务器期望所有字段都是字符串 我的模型对象具有数字属性和字符串属性 我无法向模型对象添加属性 有没有办法将所有属性值序列化为字符串 我必须只支持序列化 而不
  • 如何将 Three.js 代码实施到 Android 移动应用程序中?

    我用 HTML CSS 和 JS 编写了 Three js 场景的代码 显示 3D 头部模型及其上的标记 它适用于我的 Angular 项目 我还可以通过将 HTML 代码添加到 Web 视图中 使其在适用于 Android 和 iOS 的
  • 在 Azure Active Directory (AAD) 中注册微服务以确保安全

    我在服务结构集群中部署了一个服务结构应用程序 无状态和有状态 我正在尝试在应用程序中实现安全性 应用程序使用 Active Directory 身份验证库 ADAL 通过 OAuth 2 0 客户端凭据流从 Azure AD 获取令牌 其中
  • 如何在流体宽度表中使用省略号而不使每列大小相同?

    假设我的表中的列是id name description and phone The description列的长度为 1 255 个字符 但 id 最多只有 3 个字符 我希望列的大小适当 而不是每列的大小相同 我想要descriptio
  • A-Frame Super Hands 旋转抓取的物体

    我正在研究 A Frame A Frame 物理和 Super Hands 我有一个简单的场景 可以在其中放置一个对象 现在只是一个盒子 和一些控制器 当我在 VR 中查看这个场景时 我可以抓住盒子 移动它并调整它的大小 但我无法旋转或旋转
  • 在 Android 上下载时播放视频

    是否可以使用安全的 asp net 应用程序在 Android 上下载视频时流式传输视频 我有一个 https 安全的 ASP NET Web 应用程序 该应用程序专门为移动设备 例如 Iphone BB Android 等 制作 称为 M
  • 过滤返回错误结果的自定义适配器

    Check 我正在尝试在我的上实施过滤器ListView 但我面临着一个非常奇怪的问题 如果我输入字母T in the EditText the ListView充满了从以下开始的名字B J 请帮忙 public class MyCusto
  • 如何为子控制台应用程序使用单独的控制台窗口?

    Windows 10 C NET Core 3 1 我想要多个控制台窗口用于输出 例如 在一个显示器上 我想放置一个控制台窗口 它将仅显示错误输出 在另一个显示器上 我想放置一组其他控制台窗口 它将显示各种报告 所有这些控制台窗口都是只读的
  • AudioQueueStart 报告不支持的格式

    我试图让音频队列在 iPhone 应用程序上工作 每当调用 AudioQueueStart 时 它都会给出 fmt 结果代码 kAudioFormatUnsupportedDataFormatError 在下面的代码中 我将格式设置为 kA
  • 如何在 PHP 中打开从第 X 行到第 Y 行的文件?

    我在 PHP 文档中看到的最接近的是 fread 给定的长度 但这并没有指定从哪一行开始 还有其他建议吗 是的 您可以轻松地做到这一点SplFileObject seek http de php net manual en splfileo
  • 从亚马逊 s3 流式传输文件

    我在尝试从 amazon s3 流式传输文件时遇到问题 基本上 我的文件存储在 amazom s3 上 我无法提供对这些文件的直接访问 因为用户需要进行身份验证 我正在尝试找到一种流式传输文件的方法 而无需将每个文件从亚马逊下载到我的服务器