简体   繁体   English

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

[英]Upload file Amazon S3 return The stream does not support concurrent IO read or write operations

I try upload file in amazon s3, but always return this message. 我尝试在Amazon s3中上传文件,但始终返回此消息。

My code: 我的代码:

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);

}

I had use lock in request and client but do not resolve. 我在请求和客户端中使用了锁定,但无法解决。

I think the problem is the memoryStreamFile, please do double check trying to read the content of your memorystreamFile.So another way to upload files to AmazonS3 with C# is the following: 我认为问题是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");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM