上传文件Amazon S3返回该流不支持并发IO读取或写入操作

时间:2016-11-10 14:52:47

标签: c# asp.net amazon-s3

我尝试在亚马逊s3上传文件,但总是返回此消息。

我的代码:

AmazonS3Config S3Config = new AmazonS3Config()
{
    ServiceURL = "s3.amazonaws.com",
    CommunicationProtocol = Protocol.HTTP,
    RegionEndpoint = RegionEndpoint.SAEast1
};

using (AmazonS3Client client = new AmazonS3Client(KEY_S3, PASSWORD, S3Config))
{

    string pathInS3 = folder + "/" + fileName;
    PutObjectRequest request = new PutObjectRequest();

    request.WithBucketName(BUCKET_NAME);
    request.WithKey(pathInS3); 
    request.WithInputStream(memoryStreamFile);
    request.CannedACL = S3CannedACL.PublicReadWrite;

    client.PutObject(request);

}

我在请求和客户端使用了锁,但没有解决。

1 个答案:

答案 0 :(得分:0)

我认为问题是memoryStreamFile,请仔细检查你读取memorystreamFile的内容。另外用C#将文件上传到AmazonS3的方法如下:

            AmazonS3Config cfg = new AmazonS3Config();
            cfg.RegionEndpoint = Amazon.RegionEndpoint.EUCentral1;// region endpoint
            string bucketName = "your bucket";
            AmazonS3Client s3Client = new AmazonS3Client("your access key", "your secret key", cfg);            
            string dataString ="your data ";
            MemoryStream data = new System.IO.MemoryStream(UTF8Encoding.ASCII.GetBytes(dataString));
            TransferUtility t = new TransferUtility(s3Client);
            t.Upload(data, bucketName, "testUploadFromTransferUtility.txt");