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# System.Net.ProtocolViolationException:要写入流的字节超过指定的内容长度字节大小_C#_Amazon S3_Aws Sdk - Fatal编程技术网

C# System.Net.ProtocolViolationException:要写入流的字节超过指定的内容长度字节大小

C# System.Net.ProtocolViolationException:要写入流的字节超过指定的内容长度字节大小,c#,amazon-s3,aws-sdk,C#,Amazon S3,Aws Sdk,使用AWSSDK.dll,我尝试在zip文件中循环浏览图像,并使用下面的代码将它们发送到AmazonS3。问题是我一直在犯错误 System.Net.ProtocolViolationException 当我调用fileTransferUtility.Upload()方法时。zip作为HttpPostedFile发布到用于创建zip文件的方法,然后循环遍历每个条目并上传 ZipFile zipFile = new ZipFile(postedFile.InputStream); forea

使用AWSSDK.dll,我尝试在zip文件中循环浏览图像,并使用下面的代码将它们发送到AmazonS3。问题是我一直在犯错误

System.Net.ProtocolViolationException 
当我调用
fileTransferUtility.Upload()方法时。zip作为
HttpPostedFile
发布到用于创建zip文件的方法,然后循环遍历每个条目并上传

ZipFile zipFile = new ZipFile(postedFile.InputStream);

foreach (ZipEntry zipEntry in zipFile)
{

    if (zipEntry.Name != String.Empty)
    {
        string saveLocation = unzipBaseDir + "/" + zipEntry.Name;
        string dbLocation = "./" + Path.Combine(unzipBaseDir, zipEntry.Name).Replace(@"\", "/");

        // save the file

        TransferUtilityConfig config = new TransferUtilityConfig();
        config.MinSizeBeforePartUpload = 80740;

        TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(accessKeyID, secretAccessKeyID, RegionEndpoint.EUWest1), config);


        using (Stream fileToUpload = zipFile.GetInputStream(zipEntry))
        {

            TransferUtilityUploadRequest fileTransferUtilityRequest = new TransferUtilityUploadRequest
            {
                BucketName = existingBucketName,
                InputStream = fileToUpload,
                StorageClass = S3StorageClass.Standard,
                PartSize = fileToUpload.Length,
                Key = saveLocation,
                CannedACL = S3CannedACL.PublicRead

            };

            fileTransferUtility.Upload(fileTransferUtilityRequest);
        }

    }
}

对于
AmazonS3Client
不太确定,但假设它只是另一个
HttpWebRequest
类型,您可能需要将
fileTransferUtility.ContentLength
设置为不超过zip文件大小的值对于
AmazonS3Client
不太确定,但假设它只是另一个
HttpWebRequest
类型,您可能需要将
fileTransferUtility.ContentLength
设置为不超过zip文件大小的值