如何使用 AmazonS3Client 在沙盒环境中测试 amazon s3
How to test amazon s3 in sandbox environment with AmazonS3Client
当您的代码使用 AmazonS3Client 时,您如何在沙盒环境中测试 S3?
IAmazonS3 amazonS3Client =
Amazon.AWSClientFactory.CreateAmazonS3Client(s3AccessKey, s3SecretKey, config);
var request = new PutObjectRequest()
{
BucketName = "bucketname",
Key = "filename",
ContentType = "application/json",
ContentBody = "body"
};
amazonS3Client.PutObject(request);
我已经尝试过 S3Ninja 和 FakeS3,但 AmazonS3Client 没有成功,这让我相信 AmazonS3Client 的行为不像普通的休息客户端。
我能想到的唯一解决方案是将代码转换为使用 rest 客户端并手动构建请求,headers 这样我就可以使用 S3Ninja 或 FakeS3。
与其花费时间和精力获取 S3 模型和假 S3,更好的方法是创建一个新的 S3 存储桶并使用它。
S3 并不昂贵(相对而言);有几种方法可以优化 S3 中的成本 - 通过设置生命周期规则(删除所有对象 - 在一天内 - 所以今天的对象将在今天结束时删除)你可以控制成本。
同时设置 RRS - 为您的 S3 存储桶减少冗余存储 - 它大致将成本进一步降低了正常价格的 1/3。
我让 FakeS3 开始工作了。我的问题是我需要更新主机文件 (/etc/hosts):
127.0.0.1 myBucketName.s3.amazon.com s3.amazon.com
我们必须这样做的原因是因为 url 放置对象是 http://bucketname.s3.amazon.com,所以当 运行 在本地时,您的 dns 将不知道去哪里寻找 bucketname。 s3.amazon.com
我不知道它现在是否与您相关,但有一个名为 localstack 的功能齐全的本地 AWS 云堆栈,而且它是免费的。
当您的代码使用 AmazonS3Client 时,您如何在沙盒环境中测试 S3?
IAmazonS3 amazonS3Client =
Amazon.AWSClientFactory.CreateAmazonS3Client(s3AccessKey, s3SecretKey, config);
var request = new PutObjectRequest()
{
BucketName = "bucketname",
Key = "filename",
ContentType = "application/json",
ContentBody = "body"
};
amazonS3Client.PutObject(request);
我已经尝试过 S3Ninja 和 FakeS3,但 AmazonS3Client 没有成功,这让我相信 AmazonS3Client 的行为不像普通的休息客户端。
我能想到的唯一解决方案是将代码转换为使用 rest 客户端并手动构建请求,headers 这样我就可以使用 S3Ninja 或 FakeS3。
与其花费时间和精力获取 S3 模型和假 S3,更好的方法是创建一个新的 S3 存储桶并使用它。
S3 并不昂贵(相对而言);有几种方法可以优化 S3 中的成本 - 通过设置生命周期规则(删除所有对象 - 在一天内 - 所以今天的对象将在今天结束时删除)你可以控制成本。
同时设置 RRS - 为您的 S3 存储桶减少冗余存储 - 它大致将成本进一步降低了正常价格的 1/3。
我让 FakeS3 开始工作了。我的问题是我需要更新主机文件 (/etc/hosts):
127.0.0.1 myBucketName.s3.amazon.com s3.amazon.com
我们必须这样做的原因是因为 url 放置对象是 http://bucketname.s3.amazon.com,所以当 运行 在本地时,您的 dns 将不知道去哪里寻找 bucketname。 s3.amazon.com
我不知道它现在是否与您相关,但有一个名为 localstack 的功能齐全的本地 AWS 云堆栈,而且它是免费的。