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 に答える