Amazon S3 Object meta-деректерін оқып біле алмады. Net API, мен не істеп жатырмын?

S3 құжатын бірнеше рет оқып шығып, осы кодпен S3 нысанына метадеректерді қосып жатырмын ...

PutObjectRequest titledRequest = new PutObjectRequest();
titledRequest.WithTimeout(3600000)
.WithMetaData("outputfolder", outputFolder)
.WithBucketName(AWS_BUCKET_NAME)
.WithKey(objectKey)
.WithAutoCloseStream(true)
.WithInputStream(fs);

Объектіні S3 шелекінен оқығанда, мен осы кодты пайдаланамын.

string outputFolder = response.Metadata["x-amz-meta-outputfolder"];

Бірақ outputFolder айнымалы мәні бар болса да, бос жолды әр жолы аламын.

Мен мұнда бір нәрсе істемеймін бе? Мен бұл құжаттамаға сәйкес екенін айта аламын

3

3 жауаптар

string outputFolder = response.Metadata["outputfolder"];

істеймін.

1
қосылды

бұл әдісті meta-ді оқудың орнына қолдануға болады

GetObjectMetadataRequest request = new GetObjectMetadataRequest()
                    .WithKey("Key")
                    .WithBucketName("");
GetObjectMetadataResponse response = s3Client.GetObjectMetaData(request);
response."choose properety to retrieve"

бұл көмектесуі мүмкін деп сенемін

0
қосылды

Жұмыс істеу үшін тексерілген кодтар.

// upload & add outputfolder to metadata

var S3Client = new AmazonS3Client();

var Request = new PutObjectRequest {
                  BucketName = bucketname,Key = S3Name,FilePath = Filepath };

Request.Metadata.Add("outputfolder",@"C:\test");

PutObjectResponse Response = S3Client.PutObject(Request);

// download and retrieve metadata

var S3Client = new AmazonS3Client();

var Request = new GetObjectRequest { BucketName = bucketname,Key = S3Name };

GetObjectResponse Response = S3Client.GetObject(Request);

// this works

string outputFolder = Response.Metadata["x-amz-meta-outputfolder"];

// so does this - no need for the x-amz-meta- prefix

string outputFolder = Response.Metadata["outputfolder"];
0
қосылды