有没有任何方法可以获取 Amazon S3 对象的上传日期

Dri*_*Elk 2 c# amazon-s3 amazon-web-services aws-sdk-net

我正在开发一个将文件上传到 s3 存储桶的应用程序,我想使用 aws sdk for .net 列出对象及其上传日期。有没有代码可以做到这一点?

Dmi*_*ich 6

UPD:不幸的是,S3 不存储对象的上传日期。它可以为您提供lastModifiedDate,如果对象在上传后尚未修改,则该值仅等于“上传日期”。

为了获取上传日期,您应该在上传过程中使用对象保存它:

                var putRequest = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName,
                    FilePath = filePath,
                    ContentType = "text/plain"
                };
                putRequest.Metadata.Add("x-upload-date", "someUploadDate");

Run Code Online (Sandbox Code Playgroud)

然后从对象元数据中读取它

                GetObjectRequest request = new GetObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };
                using (GetObjectResponse response = await client.GetObjectAsync(request))
                using (Stream responseStream = response.ResponseStream)
                using (StreamReader reader = new StreamReader(responseStream))
                {
                    string uploadDate = response.Metadata["x-upload-date"]; 
                }
Run Code Online (Sandbox Code Playgroud)