Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在上载到S3的对象上设置“内容处置”?_C#_Amazon S3 - Fatal编程技术网

C# 在上载到S3的对象上设置“内容处置”?

C# 在上载到S3的对象上设置“内容处置”?,c#,amazon-s3,C#,Amazon S3,我有一个.NET核心项目,可以将对象上传到S3存储桶。我想设置内容配置,这样当下载对象时,名称就是我们想要的。(不一定相关,但我不想更改对象的名称,因为我所追求的“下载名称”不保证在bucket中是唯一的) 这就是我正在尝试的: var fileTransferUtilityRequest = new TransferUtilityUploadRequest { BucketName = "my-bucket", FilePath = "/tmp/54a0f73d-65ea-4

我有一个.NET核心项目,可以将对象上传到S3存储桶。我想设置
内容配置
,这样当下载对象时,名称就是我们想要的。(不一定相关,但我不想更改对象的名称,因为我所追求的“下载名称”不保证在bucket中是唯一的)

这就是我正在尝试的:

var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
    BucketName = "my-bucket", 
    FilePath = "/tmp/54a0f73d-65ea-4719-8227-b67209c15c9f.zip",
    PartSize = 6291456, // 6 MB.
    Key = "54a0f73d-65ea-4719-8227-b67209c15c9f.zip"
};

fileTransferUtilityRequest.Metadata.Add("Content-Disposition", "attachment; filename=\"human-name.zip\"");

await transferUtility.UploadAsync(fileTransferUtilityRequest, cancellationToken);
它最终使用键
x-amz-meta-content-disposition
和我通过代码设置的值向对象添加元数据


上传过程中是否有方法设置我丢失的
内容配置
键?
您可以在
TransferUtilityUploadRequest的标题中设置
内容配置

var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
    BucketName = "my-bucket", 
    FilePath = "/tmp/54a0f73d-65ea-4719-8227-b67209c15c9f.zip",
    PartSize = 6291456, // 6 MB.
    Key = "54a0f73d-65ea-4719-8227-b67209c15c9f.zip"
};

fileTransferUtilityRequest.Headers.ContentDisposition = "attachment; filename=file-name.pdf";

可选的用户定义元数据名称必须以“x-amz-meta-”开头,这有助于将它们与其他HTTP头区分开。所以它看起来像是连接了
x-amz-meta-
(必需的名称)和
内容配置
(关键字名称)。我会在文档中对此进行讨论。是的,但是使用aws控制台,您可以设置几个非用户定义的元数据值,包括内容处理。也可以使用其他语言的SDK来完成。请看,我明白,我知道您可以设置值(但不能更改键行为)。我想说的是,你根本无法改变这种行为;它在规范中定义<代码>用户定义的元数据必须以前缀“x-amz-meta-”开头,否则AmazonS3将不会在您定义时设置键值对。您可以通过向x-amz-meta-key添加您选择的名称来定义自定义元数据。这将创建一个自定义键。
例如,如果添加自定义名称alt name,元数据键将是x-amz-meta-alt-name。
这在文档中。我想我不同意
内容配置
不是自定义元数据的立场。这是一个标准标题,它们通过web控制台支持,您可以在那里手动设置。我们可以争论这个类中的元数据集合是否只用于
自定义
项,但是仍然应该有一种方法可以通过sdk设置这个非自定义库存头,正如我链接的节点问题中所示,可以通过api来完成。