Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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#从AmazonS3获取对象,其中键名设置为变量_C#_Amazon Web Services_Amazon S3 - Fatal编程技术网

如何使用C#从AmazonS3获取对象,其中键名设置为变量

如何使用C#从AmazonS3获取对象,其中键名设置为变量,c#,amazon-web-services,amazon-s3,C#,Amazon Web Services,Amazon S3,我有一个问题,我试图使用C#从AmazonS3获取一个对象 如果我将密钥作为硬编码字符串传递,则get成功。但是,如果我将相同的字符串分配给一个变量,并将该变量传递到get object请求中,我会得到一个指定的键不存在响应 具体来说,下面的代码段会导致get请求成功 var getRequest = new Amazon.S3.Model.GetObjectRequest { BucketName = BucketName, Key = "foo/bar/test.d

我有一个问题,我试图使用C#从AmazonS3获取一个对象

如果我将密钥作为硬编码字符串传递,则get成功。但是,如果我将相同的字符串分配给一个变量,并将该变量传递到get object请求中,我会得到一个
指定的键不存在
响应

具体来说,下面的代码段会导致get请求成功

var getRequest = new Amazon.S3.Model.GetObjectRequest
{
    BucketName = BucketName,
    Key = "foo/bar/test.dat"
};
鉴于以下代码段导致
指定的键不存在

keyName = "foo/bar/test.dat";
var getRequest = new Amazon.S3.Model.GetObjectRequest
{
    BucketName = BucketName,
    Key = keyName
};

如何使用变量获取对象,因为对象名称不固定,因此无法继续处理第一个代码段?

在创建GetObjectRequest之后,但在调用GetObject之前,是否修改了keyName?谢谢@jarmod。否-keyName变量是在创建GetObjectRequest之前设置的,并且随后不会被修改。是否可以在调用GetObject进行验证之前打印getRequest对象的密钥?如果它是您所期望的,那么在请求时对象实际上并不存在就是最明显的解释。在调用GetObject之前打印的密钥验证了它是期望的字符串,并且可以确认该对象存在于s3上(通过AWS控制台验证,并通过在请求中硬编码密钥)(我问题中的第一个片段)键实际上是
foo/bar/test.dat
还是有任何不寻常的字符?