我正在尝试使用 C# 中的 Amazon Web Services .Net SDK 读取 storage.googleapis.com
上的存储桶。
任何人都可以提供 google 的 S3 端点配置设置的工作示例,只需使用 Auth. key / secret 对和存储桶名称?或者使用任何其他方法来使其正常工作?
根据this tutorial这应该是一件简单的事情,但是当我尝试遵循给出的说明时,我遇到了各种各样的异常。以下是我当前尝试的摘录 - 它引发了 TrustFailure 异常:
The remote certificate is invalid.
AmazonS3Config conf = new AmazonS3Config();
// Set regionEndpoint to null, or else the serviceURL will be ignored
conf.RegionEndpoint = null;
conf.ServiceURL = "https://s3.storage.googleapis.com";
conf.UseHttp = false;
conf.AuthenticationRegion = null;
conf.UseAccelerateEndpoint = false;
conf.UseDualstackEndpoint = false;
AWSCredentials cred = new BasicAWSCredentials("GOOG3LFXXXXXXXXXXXXX", "BQ6VeMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
IAmazonS3 client = new AmazonS3Client(cred, conf);
GetBucketVersioningRequest request = new GetBucketVersioningRequest { BucketName = "hisbucket" };
GetBucketVersioningResponse response = client.GetBucketVersioning(request);
最佳答案
我终于得到了 .NET SDK,可以通过以下方式上传到 Google Cloud Storage:
AWSConfigsS3.UseSignatureVersion4 = false;
AmazonS3Config config = new AmazonS3Config();
config.ServiceURL = "https://storage.googleapis.com";
config.SignatureVersion = "2";
AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, config);
var transferUtilityConfig = new TransferUtilityConfig
{
ConcurrentServiceRequests = 1,
MinSizeBeforePartUpload = 6291456000,
};
var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
BucketName = bucketName,
FilePath = filePath,
PartSize = 6291456000,
Key = keyName,
};
TransferUtility fileTransferUtility = new TransferUtility(client, transferUtilityConfig);
fileTransferUtility.Upload(fileTransferUtilityRequest);
fileTransferUtility.Dispose();
关于c# - 通过 google S3 api 访问存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46766402/