You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

S3Config.java 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. /*
  2. * Copyright (C) 2015, Matthias Sohn <matthias.sohn@sap.com>
  3. * Copyright (C) 2015, Sasa Zivkov <sasa.zivkov@sap.com>
  4. * and other copyright owners as documented in the project's IP log.
  5. *
  6. * This program and the accompanying materials are made available
  7. * under the terms of the Eclipse Distribution License v1.0 which
  8. * accompanies this distribution, is reproduced below, and is
  9. * available at http://www.eclipse.org/org/documents/edl-v10.php
  10. *
  11. * All rights reserved.
  12. *
  13. * Redistribution and use in source and binary forms, with or
  14. * without modification, are permitted provided that the following
  15. * conditions are met:
  16. *
  17. * - Redistributions of source code must retain the above copyright
  18. * notice, this list of conditions and the following disclaimer.
  19. *
  20. * - Redistributions in binary form must reproduce the above
  21. * copyright notice, this list of conditions and the following
  22. * disclaimer in the documentation and/or other materials provided
  23. * with the distribution.
  24. *
  25. * - Neither the name of the Eclipse Foundation, Inc. nor the
  26. * names of its contributors may be used to endorse or promote
  27. * products derived from this software without specific prior
  28. * written permission.
  29. *
  30. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
  31. * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  32. * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  33. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  34. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  35. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  36. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  37. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  38. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  39. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  40. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  41. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  42. * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  43. */
  44. package org.eclipse.jgit.lfs.server.s3;
  45. /**
  46. * Configuration for an Amazon AWS S3 bucket
  47. *
  48. * @since 4.3
  49. */
  50. public class S3Config {
  51. private final String region;
  52. private final String bucket;
  53. private final String storageClass;
  54. private final String accessKey;
  55. private final String secretKey;
  56. private final int expirationSeconds;
  57. private final boolean disableSslVerify;
  58. /**
  59. * <p>Constructor for S3Config.</p>
  60. *
  61. * @param region
  62. * AWS region
  63. * @param bucket
  64. * S3 storage bucket
  65. * @param storageClass
  66. * S3 storage class
  67. * @param accessKey
  68. * access key for authenticating to AWS
  69. * @param secretKey
  70. * secret key for authenticating to AWS
  71. * @param expirationSeconds
  72. * period in seconds after which requests signed for this bucket
  73. * will expire
  74. * @param disableSslVerify
  75. * if {@code true} disable Amazon server certificate and hostname
  76. * verification
  77. */
  78. public S3Config(String region, String bucket, String storageClass,
  79. String accessKey, String secretKey, int expirationSeconds,
  80. boolean disableSslVerify) {
  81. this.region = region;
  82. this.bucket = bucket;
  83. this.storageClass = storageClass;
  84. this.accessKey = accessKey;
  85. this.secretKey = secretKey;
  86. this.expirationSeconds = expirationSeconds;
  87. this.disableSslVerify = disableSslVerify;
  88. }
  89. /**
  90. * Get the <code>region</code>.
  91. *
  92. * @return Get name of AWS region this bucket resides in
  93. */
  94. public String getRegion() {
  95. return region;
  96. }
  97. /**
  98. * Get the <code>bucket</code>.
  99. *
  100. * @return Get S3 storage bucket name
  101. */
  102. public String getBucket() {
  103. return bucket;
  104. }
  105. /**
  106. * Get the <code>storageClass</code>.
  107. *
  108. * @return S3 storage class to use for objects stored in this bucket
  109. */
  110. public String getStorageClass() {
  111. return storageClass;
  112. }
  113. /**
  114. * Get the <code>accessKey</code>.
  115. *
  116. * @return access key for authenticating to AWS
  117. */
  118. public String getAccessKey() {
  119. return accessKey;
  120. }
  121. /**
  122. * Get the <code>secretKey</code>.
  123. *
  124. * @return secret key for authenticating to AWS
  125. */
  126. public String getSecretKey() {
  127. return secretKey;
  128. }
  129. /**
  130. * Get the <code>expirationSeconds</code>.
  131. *
  132. * @return period in seconds after which requests signed for this bucket
  133. * will expire
  134. */
  135. public int getExpirationSeconds() {
  136. return expirationSeconds;
  137. }
  138. /**
  139. * @return {@code true} if Amazon server certificate and hostname
  140. * verification is disabled
  141. */
  142. boolean isDisableSslVerify() {
  143. return disableSslVerify;
  144. }
  145. }