【问题标题】:AWS SDK for .NET - IAmazonS3 does not contain definition for 'PutObject'适用于 .NET 的 AWS 开发工具包 - IAmazonS3 不包含“PutObject”的定义
【发布时间】:2017-06-14 08:41:44
【问题描述】:

我正在尝试创建一个允许用户将文档上传到 S3 的 Lambda 函数。为此,我遵循 SDK 的文档,该文档说有一种方法“PutObject”允许我将对象放入存储桶中。当我对此进行编码时,我得到以下编译错误:

IAmazonS3 不包含“PutObject”的定义并且没有扩展 接受“IAmazonS3”类型的第一个参数的方法“PutObject”可以 找到了。

这是我目前正在使用的代码:

S3Client = new AmazonS3Client("*********", "**********************", Amazon.RegionEndpoint.USEast1);
PutObjectRequest putRequest = new PutObjectRequest();
putRequest.BucketName = _bucket;
putRequest.ContentType = ContentType;
putRequest.ContentBody = Bytes;
var s3Response = S3Client.PutObject(putRequest);
return s3Response.HttpStatusCode.ToString();

我已更新所有 NuGet 包并安装了 AWSSDK.S3 v3.3.5.3 包。当我查看对象浏览器时,我只看到 Async 方法。文档中没有提到 PutObject 方法的列表。谁能指出我为什么这不起作用的正确方向?

【问题讨论】:

    标签: c# amazon-web-services aws-lambda aws-sdk


    【解决方案1】:

    如果您只看到 Async 操作,则您的项目可能是可移植类库或 Unity 项目,因为 NuGet 包管理器将根据您的项目类型安装正确的程序集。

    对于 PCL 和 Unity,此操作仅在异步中可用 表格。

    AmazonS3Client.PutObject

    更新

    如果您使用的是 .NET Core,这同样适用:

    适用于 .NET 的 AWS 开发工具包支持为 .NET Core 编写的应用程序。 AWS 服务客户端仅支持 .NET 中的异步调用模式 核。这也影响了许多基于 像 Amazon S3 的 TransferUtility 这样的顶级服务客户端 仅支持 .NET Core 环境中的异步调用。为了 详情见Configuring the AWS SDK for .NET with .NET Core

    Platforms Supported by the AWS SDK for .NET

    【讨论】:

    • 我正在使用来自 SDK 工具包名称“AWS Lambda Project (.NET Core)”的模板。我误认为这不属于这两个类别之一吗?
    • AWS 服务客户端仅支持 .NET 核心中的异步调用模式。请参阅我的更新答案。
    • 我要补充一下。 .NET Core 不支持常规的 S3Client,只支持 Async 的。
    • 您的第一个链接现在似乎已损坏,可能有用:[docs.aws.amazon.com/AmazonS3/latest/dev/… an Object Using the AWS SDK for .NET)
    • @BenceLászló 感谢您的提示 :) 我已经更新了损坏的链接。
    猜你喜欢
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2013-03-21
    • 2020-07-30
    • 2012-05-04
    • 2011-11-10
    相关资源
    最近更新 更多