如何使用C#从AmazonS3获取对象,其中键名设置为变量
我有一个问题,我试图使用C#从AmazonS3获取一个对象 如果我将密钥作为硬编码字符串传递,则get成功。但是,如果我将相同的字符串分配给一个变量,并将该变量传递到get object请求中,我会得到一个如何使用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
指定的键不存在响应
具体来说,下面的代码段会导致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
还是有任何不寻常的字符?