注册
去官网注册S3即可,可以用信用卡申请一年的免费试用。
注册地址:传送门
工具
客户端:传送门
AWS Toolkit for Visual Studio:传送门
安装
安装下载地址:传送门,可以通过NuGet安装下载,也可以通过下载MSI安装程序安装下载。
利用NueGet下载安装包,安装AWSSDK.S3
、AWSSDK.Core
这两个包。
NuGet的packages.config配置如下:
<packages>
<package id="AWSSDK.Core" version="3.3.21.17" targetFramework="net452" />
<package id="AWSSDK.S3" version="3.3.17.2" targetFramework="net452" />
</packages>
开发环境要求:
.NET Framework3.5或更高
VS2010或更高
资源
AWS S3入门指南:传送门
AWS S3控制台帮助:传送门
AWS S3开发帮助 :传送门
AWS .Net开发帮助:传送门
AWS .Net API:传送门
AWS S3 GitHub开发资源:传送门
AWS NET GitHub开发资源:传送门
基础概念
存储桶(Bucket)
:存储桶是 Amazon S3 中用于存储对象的容器。(具有全球唯一性)
对象(Object)
:对象是 Amazon S3 中存储的基本实体。(在存储桶中,对象将由键 (名称) 和版本 ID 进行唯一地标识。)
键(Key)
:键是指存储桶中对象的唯一标识符。存储桶内的每个对象都只能有一个键。
区域(RegionEndpoint)
:您可以选择一个地理区域供 Amazon S3 存储您创建的存储桶。
开发
Client
有关管理AWS访问密钥的最佳实践:传送门
配置AWS凭证:传送门
配置AWS凭证,使用AWS账户或IAM用户证书进行请求
下载IAM用户证书
- 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.aws.amazon.com/iam/。
- 创建一个新用户,其权限仅限于您希望您的代码有权访问的服务和操作。有关创建新 IAM 用户的更多信
息,请参阅创建 IAM 用户 (控制台),并按照步骤 8 中的说明进行操作。 - 选择 Download .csv 以保存 AWS 凭证的本地副本。
创建本地AWS凭证文件(不推荐)
-
在 Windows 上,它在以下位置:
%HOMEPATH%\.aws
,正常右键无法新建.aws文件夹,需使用PowerShell执行如下命令cd %HOMEPATH% mkdir .aws
-
在 .aws 目录中,创建名为 credentials 的新文件。
-
打开您从 IAM 控制台中下载的凭证 .csv 文件,并使用以下格式将其内容复制到 credentials 文件:
[default] aws_access_key_id = your_access_key_id aws_secret_access_key = your_secret_access_key
-
保存 credentials 文件,并删除在步骤 3 中下载的 .csv 文件。
您的共享凭证文件现在已在本地计算机上配置完毕,可以与 AWS 开发工具包一起使用,示例测试代码:传送门。
使用AWS凭证
AWS SDK for .NET按以下顺序搜索凭证,并对当前应用程序使用第一个可用集。
- 客户端配置或在 AWS 服务客户端上明确设置的对象。
- 根据 AWSAccessKey 和 AWSSecretKey AppConfig 值 (如果这些值可用) 创建的 BasicAWSCredentials。根据 AWSAccessKey 和 AWSSecretKey AppConfig 值 (如果这些值可用) 创建的 BasicAWSCredentials。
- 具有由 AWSConfigs.AWSProfileName (明确设置或在 AppConfig 中设置) 中的值指定的名称的凭证配置文件。具有由 AWSConfigs.AWSProfileName (明确设置或在 AppConfig 中设置) 中的值指定的名称的凭证配置文件。
- default 凭证配置文件。default 凭证配置文件。
- 根据 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 和 AWS_SESSION_TOKEN 环境变量 (如果这些变量都不为空) 创建的 SessionAWSCredentials。根据 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 和 AWS_SESSION_TOKEN 环境变量 (如果这些变量都不为空) 创建的 SessionAWSCredentials。
- 根据 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量 (如果这两个变量不为空) 创建的 BasicAWSCredentials。根据 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量 (如果这两个变量不为空) 创建的 BasicAWSCredentials。
- 适用于 Amazon EC2 Container Service (Amazon ECS) 任务的 IAM 角色。适用于 Amazon EC2 Container Service (Amazon ECS) 任务的 IAM 角色。
- EC2 实例元数据。EC2 实例元数据。
SDK Store 配置文件针对特定主机上的特定用户。无法将这些配置文件复制到其他主机或其他用户。出于此原因,您无法在其他主机或开发人员计算机上重用您的开发计算机上的 SDK Store 配置文件。
本地直接使用
//代码会自动读取本地的AWS凭证文件
client = new AmazonS3Client(RegionEndpoint.USWest2);
代码中直接使用AWS凭证信息
//在代码中直接使用AWS凭证信息
var client = new AmazonS3Client(sAccessKeyId, sAccessKeySecret, RegionEndpoint.USWest2);
创建一个配置文件,并保存到共享凭证文件中(推荐)
1.创建一个配置文件,并保存到共享凭证文件中C:\Users\Administrator\AppData\Local\AWSToolkit
public bool RegisterCredsConfig(string profileName, string sAccessKeyId, string sAccessKeySecret, string sEndpoint)
{
bool bResult = false;
try
{
var options = new CredentialProfileOptions
{
AccessKey = sAccessKeyId,
SecretKey = sAccessKeySecret
};
var profile = new Amazon.Runtime.CredentialManagement.CredentialProfile(profileName, options);
profile.Region = RegionEndpoint.GetBySystemName(sEndpoint);
var netSDKFile = new NetSDKCredentialsFile();
netSDKFile.RegisterProfile(profile);
bResult = true;
}
catch(Exception ex)
{
LogHelper.WriteLog("AWS配置", ex, "创建本地AWS凭证失败!");
}
return bResult;
}
2.使用加密的共享凭证文件
CredentialProfile basicProfile;
AWSCredentials awsCredentials;
var sharedFile = new SharedCredentialsFile();
if (sharedFile.TryGetProfile("basic_profile", out basicProfile) &&
AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials))
{
using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region))
{
var response = client.ListBuckets();
}
}