【问题标题】:AWS .NET SDK Multipart File Upload from Http从 Http 上传 AWS .NET SDK 多部分文件
【发布时间】:2011-12-20 05:27:16
【问题描述】:

我已经实现了一个 .ashx 处理程序,它从客户端接收文件的分块上传部分。以前,我首先将文件存储在临时文件夹中,然后再将它们上传到 AWS。 由于文件变得相当大,我想跳过临时文件夹部分并使用 MultiPart 请求将它们直接上传到 AWS。

到目前为止看起来还不错,但我找不到接受 HttpPostedFile 或 Stream 进行上传的重载..

我可能会出现以下情况?

        // Create request to upload a part.
        UploadPartRequest uploadRequest = new UploadPartRequest()
            .WithBucketName(myBucket)
            .WithKey(myKey)
            .WithUploadId(myUploadId)                
            .WithPartNumber(partNumber)
            .WithInputStream(inputStream); 

【问题讨论】:

    标签: c# amazon-s3


    【解决方案1】:
    UploadPartRequest uploadRequest = new UploadPartRequest()
            .WithBucketName(myBucket)
            .WithKey(myKey)
            .WithUploadId(myUploadId)                
            .WithPartNumber(partNumber)
            .WithInputStream(stream) as UploadPartRequest;
    

    这也是可能的。

    【讨论】:

      【解决方案2】:

      WithInputStream 将返回 s3 请求而不是 UploadPartRequest 所以只需将返回类型转换为 UploadPartRequest

      // Create request to upload a part.
              UploadPartRequest uploadRequest = new UploadPartRequest()
                  .WithBucketName(myBucket)
                  .WithKey(myKey)
                  .WithUploadId(myUploadId)                
                  .WithPartNumber(partNumber);
      
      uploadRequest = (UploadPartRequest)uploadRequest.WithInputStream(ftiObject.sourceStream); 
      

      这对我有用

      【讨论】:

        【解决方案3】:

        简单:只需通过属性设置输入流:

                    // Create request to upload a part.
                    UploadPartRequest uploadRequest = new UploadPartRequest()
                        .WithBucketName(myBucket)
                        .WithKey(myKey)
                        .WithUploadId(UploadId)
                        .WithPartNumber(PartNumber)
                        .WithPartSize(inputStream.Length)
                        .WithFilePosition(FilePosition);
        
                    uploadRequest.InputStream = inputStream;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-06-06
          • 2011-01-25
          • 1970-01-01
          • 2023-01-30
          • 2017-10-14
          • 2018-04-05
          • 2016-06-27
          • 1970-01-01
          相关资源
          最近更新 更多