0

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

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文件名,但我想获取该文件名的公共路径,并且我不会寻找有关获取对现有文件的此类引用的帮助。

我通常在配置文件中使用公共存储桶url,但我想知道是否可以避免这样的配置,并在检索时从对象本身获取它。

4

1 回答 1

1

发现这更容易一些,因为 Amazon S3 遵循约定:

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

这将是公共路径。

于 2013-01-19T19:09:41.360 回答