簡體   English   中英

在.NET Core中配置AWS S3客戶端

[英]Configuring AWS S3 Client in .NET Core

我正在按照指南在.NET Core中配置AWS開發工具包以將文件上載到S3存儲桶。

我的app.settings.json文件包含:

{
  "AWS": {
    "Region": "us-west-1",
    "AccessKey": "access_key",
    "SecretKey": "secret_key"
  }
  ...
}

這是我的StartUp類:

public class Startup
{
    public IContainer ApplicationContainer { get; private set; }
    public IConfiguration Configuration { get; }

    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
            .AddEnvironmentVariables();
        Configuration = builder.Build();
    }

    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddOptions();
        services.AddMvc();
        services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
        services.AddAWSService<IAmazonS3>();
    }
}

我相信這意味着我可以將一個客戶端對象注入一個將使用app.settings值的類。 我正在嘗試注入對象並像這樣進行S3調用:

public class FileUploader
{
    private readonly IAmazonS3 client;

    public FileUploader(IAmazonS3 client)
    {
        this.client = client;
    }

    public async Task Upload()
    {
        var request = new PutObjectRequest
        {
            BucketName = "bucketName",
            Key = "Test",
            FilePath = "test_file.txt",
            ContentType = "text/plain"
        };

        var cancellationToken = new CancellationToken();
        var response = await client.PutObjectAsync(request, cancellationToken);
    }
}

目前,當我嘗試執行此操作時,應用程序在嘗試注入S3Client時掛起。 最初,我並沒有嘗試注入S3Client,而是在我的FileUploaded類中實例化它。 我收到一個錯誤,因為我沒有指定AccessKey等,我找不到設置它的方法。

我究竟做錯了什么?

看起來我應該只在我的appsettings中包含RegionProfile 應使用此處的信息生成配置文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM