如何在不使用SDK的情况下使用.NET HttpClient上载到Amazon S3

lam*_*ter 5 .net httpclient amazon-s3 amazon-web-services

如何仅使用.NET的HttpClient(或WebClient)将文件上传到Amazon S3上的存储桶?必须使用“ PUT”完成。

我可以使用Amazon的AWS开发工具包进行上传,但是我想知道如何在没有它的情况下进行上传。我看了他们几个小时的文档,但仍然不明白。

任何帮助将不胜感激。

我使用他们的SDK的代码是:

public static void TestPutObjectAsync() {
        AmazonS3Client client = new AmazonS3Client();
        client.AfterResponseEvent += new ResponseEventHandler(callback);

        PutObjectRequest request = new PutObjectRequest {
            BucketName = BUCKET_NAME,
            Key = "Item1",
            FilePath = FILE_PATH,
        };

        client.PutObjectAsync(request);
}

public static event EventHandler UploadComplete;

public static void callback(object sender, ResponseEventArgs e) {

        if (UploadComplete != null) {
            UploadComplete(sender, e);
        }
}
Run Code Online (Sandbox Code Playgroud)

E.J*_*nan 0

不确定为什么您不想使用 SDK(这就是它的用途),但即使您不想使用整个 AWSSDK,您仍然可以使用其中的一部分 - 或者至少看看他们是如何做到的在幕后。

这里全部开源:

https://github.com/aws/aws-sdk-net/tree/master/AWSSDK_DotNet45/Amazon.S3

最终,您要寻找的答案就在那里 - 但可能需要做更多的工作而不值得将其找出来。