如何获取Amazon对象的公共路径?

时间:2013-01-19 18:57:29

标签: c# amazon-web-services amazon-s3

我目前正在将我的根对象列为:

var files = new List<string>();
var request = new ListObjectsRequest();
request.WithBucketName(bucketName);

try
{
    using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(this.accessKey, this.secretAccessKey))
    using (ListObjectsResponse r = client.ListObjects(request))
        foreach (var o in r.S3Objects)
            //o.ETag, o.Key, o.StorageClass, o.Size
            if (o.Size > 0)
                files.Add(o.Key); 
}
catch (Exception ex)
{
    // log exception
}

o.Key中有文件名,但是我想获取此文件名的公共路径,我不会找到有关获取此类文件名称的帮助文件。

我通常在配置文件中使用 Public Bucket url,但我想知道是否可以避免这样的配置,并且实际上在检索时从Object本身获取它。

1 个答案:

答案 0 :(得分:1)

发现这更容易,因为Amazon S3遵循惯例:

string path = String.Format("http://{0}.s3.amazonaws.com/", originBucketName);

这将成为公共道路。