Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 C#-AWS S3使用PutObject或TransferUtility.Upload方法上载文件。哪种方式更好?_C# 4.0_Amazon S3 - Fatal编程技术网

C# 4.0 C#-AWS S3使用PutObject或TransferUtility.Upload方法上载文件。哪种方式更好?

C# 4.0 C#-AWS S3使用PutObject或TransferUtility.Upload方法上载文件。哪种方式更好?,c#-4.0,amazon-s3,C# 4.0,Amazon S3,我知道在AWS S3中上传文件有两种方法(即PutObject和TransferUtility.upload)。有人能解释一下用哪一个吗 仅供参考,我有1kb到250MB的文件 提前感谢。基于,我将坚持使用TransferUtility。上传: 提供一个高级实用程序,用于管理与Amazon S3之间的传输 TransferUtility提供了一个简单的API,用于向AmazonS3上传内容和从AmazonS3下载内容。它广泛使用AmazonS3多部分上传,以提高吞吐量、性能和可靠性 当通过指定文

我知道在AWS S3中上传文件有两种方法(即PutObject和TransferUtility.upload)。有人能解释一下用哪一个吗

仅供参考,我有1kb到250MB的文件

提前感谢。

基于,我将坚持使用
TransferUtility。上传

提供一个高级实用程序,用于管理与Amazon S3之间的传输

TransferUtility提供了一个简单的API,用于向AmazonS3上传内容和从AmazonS3下载内容。它广泛使用AmazonS3多部分上传,以提高吞吐量、性能和可靠性

当通过指定文件路径而不是流来上载大文件时,TransferUtility使用多个线程一次上载单个上载的多个部分。在处理大内容大小和高带宽时,这可以显著提高吞吐量

但是请注意可能的并发性问题以及关于使用BeginUpload(异步版本)的建议,如

Amazon不推荐S3传输管理器,并迁移到新的 传输实用程序。传输实用程序是一个简单的接口,用于处理S3的最常见用途。它有一个构造函数,可以 需要AmazonS3Client的实例。使用它是如此容易 让开发者用更少的代码执行所有操作

以下是通过Transfer Manager使用Transfer Utility的关键功能

  • 上载大文件时,TransferUtility使用多个线程来 一次上载单个上载的多个部分。处理 大内容大小和高带宽可以提高吞吐量 TransferUtility会检测文件是否很大并切换到 多部分上传模式。多部分上传提供了 更好的性能,因为部件可以同时上载为 好吧,如果有错误的话,只需要修改单个部分 重试
  • 大多数情况下,我们尝试在S3上上传大文件,这会占用太多时间 是时候上传了,在这种情况下,我们需要进度信息 例如传输的字节总数和剩余的字节数 要传输的数据。使用 传输管理器,开发人员将回调传递给 upload或download,它会定期触发以下方法
  • 无法使用传输管理器暂停传输 基于流的上传或下载。但传输实用程序为我们提供 暂停并恢复选项,它还有一个基于单个文件的方法 上传和下载
transferUtility.upload(我的存储桶、对象密钥、文件到上传) 下载(我的存储桶,对象密钥,文件上传)

  • 传输管理器只需要INTERNET权限。然而, 由于传输实用程序自动检测网络状态根据网络状态暂停/恢复传输 传输实用程序的暂停功能很简单,因为所有传输都可以暂停和恢复。由于网络连接丢失而暂停的传输将自动恢复,无需采取任何操作。自动暂停并等待网络连接的传输将具有状态。此外,Transfer实用程序存储有关传输到本地SQLite数据库的所有元数据,因此开发人员不需要保存任何内容
注意:
其他一切都很好。但是传输实用程序不支持copy()API。要实现它,请使用AmazonS3ClientcopyObject()方法。

感谢您的回复。你认为我需要在asp.net应用程序中使用BeginUpload,还是我可以使用普通的上传方法?不客气。这实际上取决于您希望上载是同步还是异步。如果我是异步进行上载,ASP.Net应用程序中的状态将如何显示?是否有可用的示例?请查看MSDN中的同步与异步。TransferUtility.Upload比我上载110MB文件时的PutObject快4倍,TransferUtility.Upload是goit的一种方式,非常简单,简单地解释了如何暂停并继续在Amazon s3上上传文件?@SantoshKokatnur:这里不会以正确的格式显示代码。很抱歉,这是您想要的……TransferObserver=transferUtility.download(“bucket\u name”,“key”,file);int id=observer.getId();transferUtility.pause(id);简历(id);TransferObserver=transferUtility.download(“bucket\u name”,“key”,file);int id=observer.getId();transferUtility.pause(id);简历(id)@SantoshKokatnur我之前已经发送过两次了。它看起来像纯文本,但实际上是未缩进的代码。只需复制它并将其放入IDE工作环境中使用即可。