使用Amazon API for .NET设置内容编码和内容类型

时间:2011-10-06 19:20:01

标签: c# asp.net api header amazon-s3

如何将S3存储桶文件头设置为以下内容:

content-encoding:gzip content-type:text / css

我正在使用SDK for .NET使用Amazon API。我正在使用PutObjectRequest将文件上传到S3。上传文件时,内容类型和内容编码标题未更新的问题(我已通过亚马逊控制台上的文件属性进行了检查)。

示例:

 request.AddHeader("expires", EXPIRES_DATE);
 request.AddHeader("content-encoding", "gzip");         
 request.ContentType = "text/css";

也尝试过:

NameValueCollection metadata = new NameValueCollection();
metadata.Add("content-type", "text/css");
metadata.Add("content-encoding", "gzip");
request.WithMetaData(metadata);

我做错了什么?

3 个答案:

答案 0 :(得分:2)

当时接受的答案是正确的,但API于2014年更新,因此这是新方式

PutObjectRequest request = new PutObjectRequest
{
    BucketName = bucketName,
    ContentType = "text/css",
    Key = filename
};
request.Headers["Content-Encoding"] = "gzip";

答案 1 :(得分:1)

将内容类型添加到api中的contentType属性,如下所示

 PutObjectRequest request = new PutObjectRequest();
    string contentType = "text/css";
    request = request.WithContentType(contentType); 

//用于内容编码 //添加以下标题

request.AddHeader("content-encoding","gzip");
希望这可以帮助

答案 2 :(得分:0)

在2019年,使用最新的API,代码将如下所示:

PutObjectRequest request = new PutObjectRequest {
    BucketName = bucketName,
    ContentType = "text/css",
    Key = filename
};
request.Headers.ContentEncoding = "gzip";