[英]AWS .NET SDK configure S3 Client with ASP.NET Core Dependency Injection
[英]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中包含Region
和Profile
。 應使用此處的信息生成配置文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.