当前位置: 首页 > 知识库问答 >
问题:

AmazonS3Client挂在PutObject

葛志国
2023-03-14

从上周开始,向我们的S3存储(caringo swarm)上传文件时,经常会在s3client.putobject()处随机挂起,我很难找到解决方案。我有一个非常简单的复制从我的桌面。大约10分钟后,文件确实成功上传,但它应该是亚秒响应时间。

  • 这是一个。NET Framework
  • 该问题在.NET Framework 4.7.2和4.8中都发生
  • 我正在使用最新的awssdk.core和awssdk.s3 NuGet包
  • 从供应商的网站手动上载文件可以正常工作,只是不能从代码上载文件
  • 我们所有的环境(prod、QA和我的桌面/本地环境)都指向相同的存储系统,只是不同的存储桶

我可以用下面的代码复制10次中的9次。我甚至尝试使用s3client.putobjectasync(),但结果相同。

有什么想法吗?

private const string key = "<key>";
private const string secret = "<secret>";
private const string file = @"C:\Users\file1.jpg";
private const string url = "https://someurl.com";
private const string bucket = "bucket1";
private const string destFile = "file1.jpg";

private static void RunSync()
{
    AmazonS3Config config = new AmazonS3Config();
    config.ServiceURL = url;
    try
    {
        using (AmazonS3Client s3Client = new AmazonS3Client(key, secret, config))
        {
            using (FileStream fs = File.OpenRead(file))
            {
                PutObjectRequest request = new PutObjectRequest
                {
                    BucketName = bucket,
                    CannedACL = (S3CannedACL.PublicRead),
                    Key = destFile,
                    InputStream = fs
                };
                PutObjectResponse response = s3Client.PutObject(request);
                Console.WriteLine("Status Code: " + response.HttpStatusCode);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

我也在这里尝试了S3站点的示例代码,但仍然,即使在那时它也挂断了

// Initiate the upload.
InitiateMultipartUploadResponse initResponse =
            await s3Client.InitiateMultipartUploadAsync(initiateRequest);

共有1个答案

郎祯
2023-03-14

原来这是一个Caringo Swarm问题--与AWS的身份验证已经改变,需要回收他们的服务,这解决了我们这一端的一切。

 类似资料:
  • 我有一个Java应用程序,它运行一系列并行线程,从AmazonS3下载对象块。我注意到,在没有任何问题的情况下运行了几个小时后,最终得到一个特定的块将挂起并导致程序冻结。 Java进程仍在运行,但CPU占用和网络IO很少。执行线程转储时,有一个线程永远不会离开IN_NATIVE状态,在SSL握手过程中,ocketRead0()似乎永远不会返回。下面是转述的堆栈跟踪: 下面是如何执行的代码片段: 作

  • 我正在尝试使用AmazonS3Client进行putobject。奇怪的是,它似乎只有当我在iOS主线程上运行我的putObject代码时才起作用。 代码基本上是这样的: 谢谢,凯文 附言。我尝试在一个非主线程上分配函数调用,结果相同。

  • 我为函数分配了128MB内存,这真的不足以简单地获取凭据并实例化AmazonS3Client对象吗? 我尝试给AmazonS3Client构造函数 以及 编辑1如果我将分配给函数的内存增加到192MB,它就可以正常工作,尽管奇怪的是,报告在cloudwatch日志中只使用59MB内存。我只是失去了剩下的记忆吗?

  • 编辑 我本来应该提到我正在使用RiakCS客户机连接到S3。在本文编辑时,RIAKCS似乎存在一个问题。

  • 问题内容: 我的游戏通过通常的方法播放声音: 用户可以(异步)取消播放: 这种取消在Windows上效果很好,但是对于一个运行带有Java 6的OSX 10.5.8的用户,该程序将挂起。Threaddump显示播放线程在rain()内部。如果用户没有中断声音,则声音会很好地完成,并且应用程序将继续。 我的问题是: 这是OSX Java错误吗? 我应该使用而不是停止吗? 有任何解决方法的建议或经验吗

  • 问题内容: 我正在尝试将一些代码从Python 3.6移植到Windows 10上的Python 3.7。我看到在调用该对象时多处理代码挂起。有问题的代码要复杂得多,但是我将其简化为类似于以下程序的代码。 此代码也可以在Python 2.7中运行。出于某些原因,第一个调用在3.7中挂起,但是在其他版本上一切正常。 问题答案: 我觉得这是描述在Python 3.7.2回归这里。它似乎仅在virtua