ListMultipartUploadsCommand.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * Copyright (C) Alibaba Cloud Computing
  3. * All rights reserved.
  4. *
  5. * 版权所有 (C)阿里云计算有限公司
  6. */
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Globalization;
  10. using Aliyun.OSS.Common.Communication;
  11. using Aliyun.OSS.Util;
  12. using Aliyun.OSS.Transform;
  13. namespace Aliyun.OSS.Commands
  14. {
  15. internal class ListMultipartUploadsCommand : OssCommand<MultipartUploadListing>
  16. {
  17. private readonly ListMultipartUploadsRequest _listMultipartUploadsRequest;
  18. protected override HttpMethod Method
  19. {
  20. get { return HttpMethod.Get; }
  21. }
  22. protected override string Bucket
  23. {
  24. get { return _listMultipartUploadsRequest.BucketName; }
  25. }
  26. protected override IDictionary<string, string> Parameters
  27. {
  28. get
  29. {
  30. var parameters = base.Parameters;
  31. Populate(_listMultipartUploadsRequest, parameters);
  32. return parameters;
  33. }
  34. }
  35. private ListMultipartUploadsCommand(IServiceClient client, Uri endpoint, ExecutionContext context,
  36. IDeserializer<ServiceResponse, MultipartUploadListing> deserializeMethod,
  37. ListMultipartUploadsRequest listMultipartUploadsRequest)
  38. : base(client, endpoint, context, deserializeMethod)
  39. {
  40. OssUtils.CheckBucketName(listMultipartUploadsRequest.BucketName);
  41. _listMultipartUploadsRequest = listMultipartUploadsRequest;
  42. }
  43. public static ListMultipartUploadsCommand Create(IServiceClient client, Uri endpoint, ExecutionContext context,
  44. ListMultipartUploadsRequest listMultipartUploadsRequest)
  45. {
  46. return new ListMultipartUploadsCommand(client, endpoint, context,
  47. DeserializerFactory.GetFactory().CreateListMultipartUploadsResultDeserializer(),
  48. listMultipartUploadsRequest);
  49. }
  50. private static void Populate(ListMultipartUploadsRequest listMultipartUploadsRequest,
  51. IDictionary<string, string> parameters)
  52. {
  53. parameters[RequestParameters.SUBRESOURCE_UPLOADS] = null;
  54. if (listMultipartUploadsRequest.Delimiter != null)
  55. {
  56. parameters[RequestParameters.DELIMITER] = listMultipartUploadsRequest.Delimiter;
  57. }
  58. if (listMultipartUploadsRequest.KeyMarker != null)
  59. {
  60. parameters[RequestParameters.KEY_MARKER] = listMultipartUploadsRequest.KeyMarker;
  61. }
  62. if (listMultipartUploadsRequest.MaxUploads.HasValue)
  63. {
  64. parameters[RequestParameters.MAX_UPLOADS] =
  65. listMultipartUploadsRequest.MaxUploads.Value.ToString(CultureInfo.InvariantCulture); ;
  66. }
  67. if (listMultipartUploadsRequest.Prefix != null)
  68. {
  69. parameters[RequestParameters.PREFIX] = listMultipartUploadsRequest.Prefix;
  70. }
  71. if (listMultipartUploadsRequest.UploadIdMarker != null)
  72. {
  73. parameters[RequestParameters.UPLOAD_ID_MARKER] = listMultipartUploadsRequest.UploadIdMarker;
  74. }
  75. if (listMultipartUploadsRequest.EncodingType != null)
  76. {
  77. parameters[RequestParameters.ENCODING_TYPE] = listMultipartUploadsRequest.EncodingType;
  78. }
  79. }
  80. }
  81. }