コード例 #1
0
        public async Task DeleteObjects()
        {
            List <S3DeleteInfo> resources = new List <S3DeleteInfo>(2);

            resources.Add(new S3DeleteInfo(nameof(DeleteObjects) + "1"));
            resources.Add(new S3DeleteInfo(nameof(DeleteObjects) + "2", "versionnotfound"));

            await UploadAsync(resources[0].Name).ConfigureAwait(false);
            await UploadAsync(resources[1].Name).ConfigureAwait(false);

            DeleteObjectsResponse resp = await ObjectClient.DeleteObjectsAsync(BucketName, resources, req => req.Quiet = false).ConfigureAwait(false);

            S3DeletedObject delObj = Assert.Single(resp.Deleted);

            Assert.Equal(resources[0].Name, delObj.ObjectKey);
            Assert.True(delObj.IsDeleteMarker);
            Assert.NotEmpty(delObj.DeleteMarkerVersionId);

            S3DeleteError errorObj = Assert.Single(resp.Errors);

            Assert.Equal(resources[1].Name, errorObj.ObjectKey);
            Assert.Equal(resources[1].VersionId, errorObj.VersionId);
            Assert.Equal(ErrorCode.NoSuchVersion, errorObj.Code);
            Assert.Equal("The specified version does not exist.", errorObj.Message);
        }
コード例 #2
0
        public void MarshalResponse(IConfig config, DeleteObjectsResponse response, IDictionary <string, string> headers, Stream responseStream)
        {
            response.RequestCharged = headers.ContainsKey(AmzHeaders.XAmzRequestCharged);

            XmlSerializer s = new XmlSerializer(typeof(DeleteResult));

            using (XmlTextReader r = new XmlTextReader(responseStream))
            {
                r.Namespaces = false;

                DeleteResult deleteResult = (DeleteResult)s.Deserialize(r);

                if (deleteResult.Deleted != null)
                {
                    response.Deleted = new List <S3DeletedObject>(deleteResult.Deleted.Count);

                    foreach (Deleted deleted in deleteResult.Deleted)
                    {
                        S3DeletedObject s3Deleted = new S3DeletedObject();
                        s3Deleted.ObjectKey             = deleted.Key;
                        s3Deleted.DeleteMarkerVersionId = deleted.DeleteMarkerVersionId;
                        s3Deleted.VersionId             = deleted.VersionId;
                        s3Deleted.IsDeleteMarker        = deleted.DeleteMarker;

                        response.Deleted.Add(s3Deleted);
                    }
                }
                else
                {
                    response.Deleted = Array.Empty <S3DeletedObject>();
                }

                if (deleteResult.Error != null)
                {
                    response.Errors = new List <S3DeleteError>(deleteResult.Error.Count);

                    foreach (Error error in deleteResult.Error)
                    {
                        S3DeleteError s3DeleteError = new S3DeleteError();
                        s3DeleteError.ObjectKey = error.Key;
                        s3DeleteError.VersionId = error.VersionId;
                        s3DeleteError.Code      = ValueHelper.ParseEnum <ErrorCode>(error.Code);
                        s3DeleteError.Message   = error.Message;

                        response.Errors.Add(s3DeleteError);
                    }
                }
                else
                {
                    response.Errors = Array.Empty <S3DeleteError>();
                }
            }
        }
コード例 #3
0
        public void MarshalResponse(DeleteMultipleObjectsRequest request, DeleteMultipleObjectsResponse response, IDictionary <string, string> headers, Stream responseStream)
        {
            XmlSerializer s = new XmlSerializer(typeof(DeleteResult));

            using (XmlTextReader r = new XmlTextReader(responseStream))
            {
                r.Namespaces = false;

                DeleteResult deleteResult = (DeleteResult)s.Deserialize(r);

                if (deleteResult.Deleted != null)
                {
                    response.Deleted = new List <S3DeletedObject>(deleteResult.Deleted.Count);

                    foreach (Deleted deleted in deleteResult.Deleted)
                    {
                        S3DeletedObject s3Deleted = new S3DeletedObject();
                        s3Deleted.Key = deleted.Key;
                        s3Deleted.DeleteMarkerVersionId = deleted.DeleteMarkerVersionId;
                        s3Deleted.VersionId             = deleted.VersionId;
                        s3Deleted.DeleteMarker          = deleted.DeleteMarker;

                        response.Deleted.Add(s3Deleted);
                    }
                }
                else
                {
                    response.Deleted = Array.Empty <S3DeletedObject>();
                }

                if (deleteResult.Error != null)
                {
                    response.Errors = new List <S3DeleteError>(deleteResult.Error.Count);

                    foreach (Error error in deleteResult.Error)
                    {
                        S3DeleteError s3DeleteError = new S3DeleteError();
                        s3DeleteError.Key       = error.Key;
                        s3DeleteError.VersionId = error.VersionId;
                        s3DeleteError.Code      = error.Code;
                        s3DeleteError.Message   = error.Message;

                        response.Errors.Add(s3DeleteError);
                    }
                }
                else
                {
                    response.Errors = Array.Empty <S3DeleteError>();
                }
            }
        }