Tag: amazon s3

S3分段上传:如何取消?

我需要取消已启动的正在进行的下载 fileTransferUtility = new TransferUtility(/*…*/); var uploadRequest = new TransferUtilityUploadRequest() /* config parameters… */ fileTransferUtility.BeginUpload(uploadRequest, new AsyncCallback(uploadComplete), file); 我搜索了SO和文档,但我找不到方法…… 基本原理:用户可以选择要上传的文件,也可以选择一个非常大的文件,比如1GB。 我需要能够取消这个。 在最坏的情况下,我可以尝试完全杀死线程,或以不洁的方式关闭上传,但如何? 谢谢!

将文件上载到Amazon S3中的存储桶失败并显示“达到最大重试次数”

我一直在尝试使用他们的.net SDK创建存储桶并将文件上传到Amazon S3。 我能够创建存储桶并指定它们是在欧盟地区创建的。 用于创建存储桶的代码如下所示 PutBucketRequest request = new PutBucketRequest(); request.WithBucketName(bucketName) .WithBucketRegion(S3Region.EU); client.PutBucket(request); 然后,我使用以下代码继续将文件上传到存储桶: PutObjectRequest request = new PutObjectRequest(); request.WithBucketName(bucketName) .WithCannedACL(S3CannedACL.PublicRead) .WithKey(remoteFileName) .WithInputStream(uploadFileStream); 文件上载代码失败,并显示错误“达到最大重试次数”。 任何人都可以让我知道我需要做什么才能使上传工作? 谢谢。 编辑:尝试使用AWS管理控制台将文件上传到同一个存储桶工作正常。

Amazon S3 TransferUtility.Upload在C#中挂起

所以我正在编写一个迁移应用程序,从我们的本地存储中获取一些数据并将其上传到亚马逊。 一切都运行正常,除了一旦我进入大于15兆的文件(megs,是的,不是Gigs),应用程序冻结。 这是在C#中,非常简单。 var transferRequest = new TransferUtilityUploadRequest { Key = firstKey, FilePath = fileName, BucketName = ContentBucket, Timeout = 3600000, ContentType = GetContentTypeForFileExtension(fileName) }; transferRequest.UploadProgressEvent += DisplayFileProgress; transferUtil.Upload(transferRequest); 就像我说的那样,对于15兆或更小的文件来说效果很好……但是对于较大的文件,它只会停止并永远停留在“上传”命令上。 15 megs需要40秒,所以我期待30兆的测试文件,也许2分钟…但10分钟后,没有爱。 任何建议都将不胜感激,不幸的是,我将处理大量超过50兆的文件。 请注意,如果我在Visual Studio .net的AWS资源管理器中,我可以手动上传50+ megs的文件而不会出现任何问题并且相对较快。 所以这很“有意思”……在进一步审查中,我的50兆字节文件上传得很好。 它附加到UploadProgressEvent的代码实际上导致事情冻结,因为如果我将其注释掉,那么50 meg文件上传没有问题。 如果我保留此代码,则15 meg文件会在进度条上显示其进度。 但是,任何大于15兆的东西实际上都会导致整个应用程序冻结。 任何人都可以告诉我处理进度条更新的代码可能存在什么问题? private void DisplayFileProgress(object sender, UploadProgressArgs args) { pbFileProgress.Invoke((MethodInvoker)delegate { pbFileProgress.Value = […]

ASP.NET MVC – 将图像上传到Amazon S3

我有来自Request.Files [0]的图像。 现在,如何将此图像上传到S3? 我发现在AWS .NET API中,您必须在放置一个字符串对象时指定ContentBody。 我如何获得文件的内容正文?

使用HTTP POST上传AWS S3浏览器会产生无效签名

我正在一个用户应该能够将video文件上传到AWS的网站上工作。 为了避免不必要的流量,我希望用户直接上传到AWS(而不是通过API服务器)。 为了不在JavaScript中公开我的秘密密钥,我试图在API中生成签名。 但是,它确实告诉我,当我尝试上传时,签名不匹配。 对于签名生成,我一直在使用http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html 在后端我正在运行C#。 我使用生成签名 string policy = $@”{{“”expiration””:””{expiration}””,””conditions””:[{{“”bucket””:””dennisjakobsentestbucket””}},[“”starts-with””,””$key””,””””],{{“”acl””:””private””}},[“”starts-with””,””$Content-Type””,””””],{{“”x-amz-algorithm””:””AWS4-HMAC-SHA256″”}}]}}”; 产生以下内容 {“expiration”:”2016-11-27T13:59:32Z”,”conditions”:[{“bucket”:”dennisjakobsentestbucket”},[“starts-with”,”$key”,””],{“acl”:”private”},[“starts-with”,”$Content-Type”,””],{“x-amz-algorithm”:”AWS4-HMAC-SHA256″}]} 基于http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html (我对base64编码策略)。 我试图保持它非常简单,只是作为一个起点。 为了生成签名,我使用AWS站点上的代码。 static byte[] HmacSHA256(String data, byte[] key) { String algorithm = “HmacSHA256”; KeyedHashAlgorithm kha = KeyedHashAlgorithm.Create(algorithm); kha.Key = key; return kha.ComputeHash(Encoding.UTF8.GetBytes(data)); } static byte[] GetSignatureKey(String key, String dateStamp, String regionName, String serviceName) { byte[] kSecret = Encoding.UTF8.GetBytes((“AWS4” + key).ToCharArray()); […]

无需访问和密钥即可上传到Amazon S3

通常当我上传到S3存储时,我使用像这样的AmazonS3Client: var client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey, s3Config) 这适用于内部使用,但现在我正在寻找为外部用户提供应用程序,并且不希望我们(sacret)访问和密钥在那里。 我已经设置了一个带有存储桶策略的S3存储桶,允许匿名用户上传(PutObject),但我现在如何使用Amazon SDK? 如果没有提供访问权限和密钥,我似乎无法找到任何方法。

如何使用c#将文件上传到亚马逊S3超级简单

我厌倦了所有这些“上传到S3”的例子和不起作用的教程,有人能给我看一个简单的例子并且非常容易吗?