c# - 通过 google S3 api 访问存储桶

标签 c# .net amazon-web-services google-api

我正在尝试使用 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/

相关文章:

c# - 如何使用 .NET 3.5 从 XML 文件中读取处理指令

C# Xml 序列化 : Serialize Class properties as attributes to the parent class

javascript - 我的 C# 代码只有再次单击后才会运行

c# - Web 服务中的多个早期绑定(bind)文件

c# - 知道任何 C# 空间数据库吗?

c# - ToArray() 方法将所有实例克隆为最后一个

.net - 将 DLL 和 EXE 合并为单个 EXE 文件的缺点

amazon-web-services - DynamoDB : When does 1MB limit for queries apply

amazon-web-services - AWS Spring 启动应用程序上的 502 错误请求

javascript - Alexa (Amazon Echo) 对话技巧 - 使用 session 属性 (JavaScript - AWS Lambda)