Exemple #1
0
        public override Result Execute(ConDepSettings settings, CancellationToken token)
        {
            var dynamicAwsConfig = settings.Config.OperationsConfig.Aws;

            using (var client = new Amazon.S3.AmazonS3Client(GetAwsCredentials(dynamicAwsConfig), RegionEndpoint.GetBySystemName((string)dynamicAwsConfig.Region)))
            {
                Logger.Verbose("Trying to get object metadata from S3");
                try
                {
                    var obj = client.GetObjectMetadata(_bucket, _key);
                    if (obj.HttpStatusCode != HttpStatusCode.OK)
                    {
                        Logger.Verbose("Failed to get Amazon S3 Object metadata. Http status code was {0}", obj.HttpStatusCode);
                        Logger.Info("Could not find Amazon S3 Object {0} in bucket {1}- assuming allready deleted.", _key, _bucket);
                        return(Result.SuccessUnChanged());
                    }
                }
                catch (Exception ex)
                {
                    Logger.Verbose("Failed to get Amazon S3 Object metadata. Exception was:");
                    Logger.Verbose(ex.Message);
                    Logger.Warn("Exception during Amazon S3 Object lookup. Assuming object allready deleted.");
                    return(Result.Failed());
                }

                Logger.Info("Deleting Amazon S3 Object with key {0} in Bucket {1}", _key, _bucket);
                client.DeleteObject(_bucket, _key);
                return(Result.SuccessChanged());
            }
        }
Exemple #2
0
        /// <summary>
        /// Gets meta data of a file on S3.
        /// It throws AmazonS3Exception if any error happens
        /// </summary>
        /// <param name="keyName">key name</param>
        /// <returns></returns>
        private Amazon.S3.Model.GetObjectMetadataResponse S3GetObjectMetaData(string keyName)
        {
            var request = new Amazon.S3.Model.GetObjectMetadataRequest();

            request.BucketName = s3Settings.BucketName;
            request.Key        = keyName;
            var objectMetaData = s3Client.GetObjectMetadata(request);

            return(objectMetaData);
        }