SaqibArfeen

Untitled

Aug 18th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 37.31 KB | None | 0 0
  1. [DEFAULT]
  2.  
  3. bind_port = 5050
  4. user = swift
  5. swift_dir = /etc/swift
  6. # bind_ip = 0.0.0.0
  7. bind_ip = x.x.x.x
  8. # bind_timeout = 30
  9. # backlog = 4096
  10. # swift_dir = /etc/swift
  11. # user = swift
  12.  
  13. # Enables exposing configuration settings via HTTP GET /info.
  14. # expose_info = true
  15.  
  16. # Key to use for admin calls that are HMAC signed.  Default is empty,
  17. # which will disable admin calls to /info.
  18. # admin_key = secret_admin_key
  19. #
  20. # Allows the ability to withhold sections from showing up in the public calls
  21. # to /info.  You can withhold subsections by separating the dict level with a
  22. # ".".  The following would cause the sections 'container_quotas' and 'tempurl'
  23. # to not be listed, and the key max_failed_deletes would be removed from
  24. # bulk_delete.  Default value is 'swift.valid_api_versions' which allows all
  25. # registered features to be listed via HTTP GET /info except
  26. # swift.valid_api_versions information
  27. # disallowed_sections = swift.valid_api_versions, container_quotas, tempurl
  28.  
  29. # Use an integer to override the number of pre-forked processes that will
  30. # accept connections.  Should default to the number of effective cpu
  31. # cores in the system.  It's worth noting that individual workers will
  32. # use many eventlet co-routines to service multiple concurrent requests.
  33. # workers = auto
  34. #
  35. # Maximum concurrent requests per worker
  36. # max_clients = 1024
  37. #
  38. # Set the following two lines to enable SSL. This is for testing only.
  39. # cert_file = /etc/swift/proxy.crt
  40. # key_file = /etc/swift/proxy.key
  41. #
  42. # expiring_objects_container_divisor = 86400
  43. # expiring_objects_account_name = expiring_objects
  44. #
  45. # You can specify default log routing here if you want:
  46. # log_name = swift
  47. # log_facility = LOG_LOCAL0
  48. # log_level = INFO
  49. # log_headers = false
  50. # log_address = /dev/log
  51. # The following caps the length of log lines to the value given; no limit if
  52. # set to 0, the default.
  53. # log_max_line_length = 0
  54. #
  55. # This optional suffix (default is empty) that would be appended to the swift transaction
  56. # id allows one to easily figure out from which cluster that X-Trans-Id belongs to.
  57. # This is very useful when one is managing more than one swift cluster.
  58. # trans_id_suffix =
  59. #
  60. # comma separated list of functions to call to setup custom log handlers.
  61. # functions get passed: conf, name, log_to_console, log_route, fmt, logger,
  62. # adapted_logger
  63. # log_custom_handlers =
  64. #
  65. # If set, log_udp_host will override log_address
  66. # log_udp_host =
  67. # log_udp_port = 514
  68. #
  69. # You can enable StatsD logging here:
  70. # log_statsd_host =
  71. # log_statsd_port = 8125
  72. # log_statsd_default_sample_rate = 1.0
  73. # log_statsd_sample_rate_factor = 1.0
  74. # log_statsd_metric_prefix =
  75. #
  76. # Use a comma separated list of full url (http://foo.bar:1234,https://foo.bar)
  77. # cors_allow_origin =
  78. # strict_cors_mode = True
  79. #
  80. # client_timeout = 60
  81. # eventlet_debug = false
  82. #
  83. # You can set scheduling priority of processes. Niceness values range from -20
  84. # (most favorable to the process) to 19 (least favorable to the process).
  85. # nice_priority =
  86. #
  87. # You can set I/O scheduling class and priority of processes. I/O niceness
  88. # class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
  89. # IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
  90. # 0 to 7. The higher the value, the lower the I/O priority of the process.
  91. # Work only with ionice_class.
  92. # ionice_class =
  93. # ionice_priority =
  94.  
  95. [pipeline:main]
  96.  
  97. #pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit tempurl authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
  98. #pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit tempurl authtoken container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
  99. pipeline = catch_errors bulk healthcheck cache crossdomain ratelimit authtoken keystone formpost staticweb tempurl slo account-quotas container-quotas versioned_writes proxy-logging proxy-server
  100.  
  101. # This sample pipeline uses tempauth and is used for SAIO dev work and
  102. # testing. See below for a pipeline using keystone.
  103. #pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk tempurl ratelimit tempauth copy container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
  104.  
  105. # The following pipeline shows keystone integration. Comment out the one
  106. # above and uncomment this one. Additional steps for integrating keystone are
  107. # covered further below in the filter sections for authtoken and keystoneauth.
  108. #pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk tempurl ratelimit authtoken keystoneauth copy container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
  109.  
  110. [app:proxy-server]
  111.  
  112. use = egg:swift#proxy
  113. account_autocreate = True
  114. # You can override the default log routing for this app here:
  115. # set log_name = proxy-server
  116. # set log_facility = LOG_LOCAL0
  117. # set log_level = INFO
  118. # set log_address = /dev/log
  119. #
  120. # log_handoffs = true
  121. # recheck_account_existence = 60
  122. # recheck_container_existence = 60
  123. # object_chunk_size = 65536
  124. # client_chunk_size = 65536
  125. #
  126. # How long the proxy server will wait on responses from the a/c/o servers.
  127. # node_timeout = 10
  128. #
  129. # How long the proxy server will wait for an initial response and to read a
  130. # chunk of data from the object servers while serving GET / HEAD requests.
  131. # Timeouts from these requests can be recovered from so setting this to
  132. # something lower than node_timeout would provide quicker error recovery
  133. # while allowing for a longer timeout for non-recoverable requests (PUTs).
  134. # Defaults to node_timeout, should be overriden if node_timeout is set to a
  135. # high number to prevent client timeouts from firing before the proxy server
  136. # has a chance to retry.
  137. # recoverable_node_timeout = node_timeout
  138. #
  139. # conn_timeout = 0.5
  140. #
  141. # How long to wait for requests to finish after a quorum has been established.
  142. # post_quorum_timeout = 0.5
  143. #
  144. # How long without an error before a node's error count is reset. This will
  145. # also be how long before a node is reenabled after suppression is triggered.
  146. # error_suppression_interval = 60
  147. #
  148. # How many errors can accumulate before a node is temporarily ignored.
  149. # error_suppression_limit = 10
  150. #
  151. # If set to 'true' any authorized user may create and delete accounts; if
  152. # 'false' no one, even authorized, can.
  153. # allow_account_management = false
  154. #
  155. # If set to 'true' authorized accounts that do not yet exist within the Swift
  156. # cluster will be automatically created.
  157. # account_autocreate = false
  158. #
  159. # If set to a positive value, trying to create a container when the account
  160. # already has at least this maximum containers will result in a 403 Forbidden.
  161. # Note: This is a soft limit, meaning a user might exceed the cap for
  162. # recheck_account_existence before the 403s kick in.
  163. # max_containers_per_account = 0
  164. #
  165. # This is a comma separated list of account hashes that ignore the
  166. # max_containers_per_account cap.
  167. # max_containers_whitelist =
  168. #
  169. # Comma separated list of Host headers to which the proxy will deny requests.
  170. # deny_host_headers =
  171. #
  172. # Prefix used when automatically creating accounts.
  173. # auto_create_account_prefix = .
  174. #
  175. # Depth of the proxy put queue.
  176. # put_queue_depth = 10
  177. #
  178. # Storage nodes can be chosen at random (shuffle), by using timing
  179. # measurements (timing), or by using an explicit match (affinity).
  180. # Using timing measurements may allow for lower overall latency, while
  181. # using affinity allows for finer control. In both the timing and
  182. # affinity cases, equally-sorting nodes are still randomly chosen to
  183. # spread load.
  184. # The valid values for sorting_method are "affinity", "shuffle", or "timing".
  185. # sorting_method = shuffle
  186. #
  187. # If the "timing" sorting_method is used, the timings will only be valid for
  188. # the number of seconds configured by timing_expiry.
  189. # timing_expiry = 300
  190. #
  191. # By default on a GET/HEAD swift will connect to a storage node one at a time
  192. # in a single thread. There is smarts in the order they are hit however. If you
  193. # turn on concurrent_gets below, then replica count threads will be used.
  194. # With addition of the concurrency_timeout option this will allow swift to send
  195. # out GET/HEAD requests to the storage nodes concurrently and answer with the
  196. # first to respond. With an EC policy the parameter only affects HEAD requests.
  197. # concurrent_gets = off
  198. #
  199. # This parameter controls how long to wait before firing off the next
  200. # concurrent_get thread. A value of 0 would be fully concurrent, any other
  201. # number will stagger the firing of the threads. This number should be
  202. # between 0 and node_timeout. The default is what ever you set for the
  203. # conn_timeout parameter.
  204. # concurrency_timeout = 0.5
  205. #
  206. # Set to the number of nodes to contact for a normal request. You can use
  207. # '* replicas' at the end to have it use the number given times the number of
  208. # replicas for the ring being used for the request.
  209. # request_node_count = 2 * replicas
  210. #
  211. # Which backend servers to prefer on reads. Format is r<N> for region
  212. # N or r<N>z<M> for region N, zone M. The value after the equals is
  213. # the priority; lower numbers are higher priority.
  214. #
  215. # Example: first read from region 1 zone 1, then region 1 zone 2, then
  216. # anything in region 2, then everything else:
  217. # read_affinity = r1z1=100, r1z2=200, r2=300
  218. # Default is empty, meaning no preference.
  219. # read_affinity =
  220. #
  221. # Which backend servers to prefer on writes. Format is r<N> for region
  222. # N or r<N>z<M> for region N, zone M. If this is set, then when
  223. # handling an object PUT request, some number (see setting
  224. # write_affinity_node_count) of local backend servers will be tried
  225. # before any nonlocal ones.
  226. #
  227. # Example: try to write to regions 1 and 2 before writing to any other
  228. # nodes:
  229. # write_affinity = r1, r2
  230. # Default is empty, meaning no preference.
  231. # write_affinity =
  232. #
  233. # The number of local (as governed by the write_affinity setting)
  234. # nodes to attempt to contact first, before any non-local ones. You
  235. # can use '* replicas' at the end to have it use the number given
  236. # times the number of replicas for the ring being used for the
  237. # request.
  238. # write_affinity_node_count = 2 * replicas
  239. #
  240. # These are the headers whose values will only be shown to swift_owners. The
  241. # exact definition of a swift_owner is up to the auth system in use, but
  242. # usually indicates administrative responsibilities.
  243. # swift_owner_headers = x-container-read, x-container-write, x-container-sync-key, x-container-sync-to, x-account-meta-temp-url-key, x-account-meta-temp-url-key-2, x-container-meta-temp-url-key, x-container-meta-temp-url-key-2, x-account-access-control
  244. #
  245. # You can set scheduling priority of processes. Niceness values range from -20
  246. # (most favorable to the process) to 19 (least favorable to the process).
  247. # nice_priority =
  248. #
  249. # You can set I/O scheduling class and priority of processes. I/O niceness
  250. # class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
  251. # IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
  252. # 0 to 7. The higher the value, the lower the I/O priority of the process.
  253. # Work only with ionice_class.
  254. # ionice_class =
  255. # ionice_priority =
  256.  
  257. [filter:tempauth]
  258. use = egg:swift#tempauth
  259. # You can override the default log routing for this filter here:
  260. # set log_name = tempauth
  261. # set log_facility = LOG_LOCAL0
  262. # set log_level = INFO
  263. # set log_headers = false
  264. # set log_address = /dev/log
  265. #
  266. # The reseller prefix will verify a token begins with this prefix before even
  267. # attempting to validate it. Also, with authorization, only Swift storage
  268. # accounts with this prefix will be authorized by this middleware. Useful if
  269. # multiple auth systems are in use for one Swift cluster.
  270. # The reseller_prefix may contain a comma separated list of items. The first
  271. # item is used for the token as mentioned above. If second and subsequent
  272. # items exist, the middleware will handle authorization for an account with
  273. # that prefix. For example, for prefixes "AUTH, SERVICE", a path of
  274. # /v1/SERVICE_account is handled the same as /v1/AUTH_account. If an empty
  275. # (blank) reseller prefix is required, it must be first in the list. Two
  276. # single quote characters indicates an empty (blank) reseller prefix.
  277. # reseller_prefix = AUTH
  278.  
  279. #
  280. # The require_group parameter names a group that must be presented by
  281. # either X-Auth-Token or X-Service-Token. Usually this parameter is
  282. # used only with multiple reseller prefixes (e.g., SERVICE_require_group=blah).
  283. # By default, no group is needed. Do not use .admin.
  284. # require_group =
  285.  
  286. # The auth prefix will cause requests beginning with this prefix to be routed
  287. # to the auth subsystem, for granting tokens, etc.
  288. # auth_prefix = /auth/
  289. # token_life = 86400
  290. #
  291. # This allows middleware higher in the WSGI pipeline to override auth
  292. # processing, useful for middleware such as tempurl and formpost. If you know
  293. # you're not going to use such middleware and you want a bit of extra security,
  294. # you can set this to false.
  295. # allow_overrides = true
  296. #
  297. # This specifies what scheme to return with storage urls:
  298. # http, https, or default (chooses based on what the server is running as)
  299. # This can be useful with an SSL load balancer in front of a non-SSL server.
  300. # storage_url_scheme = default
  301. #
  302. # Lastly, you need to list all the accounts/users you want here. The format is:
  303. #   user_<account>_<user> = <key> [group] [group] [...] [storage_url]
  304. # or if you want underscores in <account> or <user>, you can base64 encode them
  305. # (with no equal signs) and use this format:
  306. #   user64_<account_b64>_<user_b64> = <key> [group] [group] [...] [storage_url]
  307. # There are special groups of:
  308. #   .reseller_admin = can do anything to any account for this auth
  309. #   .admin = can do anything within the account
  310. # If neither of these groups are specified, the user can only access containers
  311. # that have been explicitly allowed for them by a .admin or .reseller_admin.
  312. # The trailing optional storage_url allows you to specify an alternate url to
  313. # hand back to the user upon authentication. If not specified, this defaults to
  314. # $HOST/v1/<reseller_prefix>_<account> where $HOST will do its best to resolve
  315. # to what the requester would need to use to reach this host.
  316. # Here are example entries, required for running the tests:
  317. user_admin_admin = admin .admin .reseller_admin
  318. user_test_tester = testing .admin
  319. user_test2_tester2 = testing2 .admin
  320. user_test_tester3 = testing3
  321. user_test5_tester5 = testing5 service
  322.  
  323. # To enable Keystone authentication you need to have the auth token
  324. # middleware first to be configured. Here is an example below, please
  325. # refer to the keystone's documentation for details about the
  326. # different settings.
  327. #
  328. # You'll also need to have the keystoneauth middleware enabled and have it in
  329. # your main pipeline, as show in the sample pipeline at the top of this file.
  330. #
  331. # Following parameters are known to work with keystonemiddleware v2.3.0
  332. # (above v2.0.0), but checking the latest information in the wiki page[1]
  333. # is recommended.
  334. # 1. http://docs.openstack.org/developer/keystonemiddleware/middlewarearchitecture.html#configuration
  335. #
  336. #filter manually added by saqib
  337. [filter:crossdomain]
  338. use=egg:swift#crossdomain
  339. cross_domain_policy=<allow-access-from domain="*" secure="false" />
  340.  
  341. [filter:keystone]
  342. use = egg:swift#keystoneauth
  343. operator_roles = admin, SwiftOperator, _member_
  344. cache = swift.cache
  345. reseller_prefix=AUTH_
  346.  
  347.  
  348. [filter:authtoken]
  349.  
  350. paste.filter_factory = keystonemiddleware.auth_token:filter_factory
  351. auth_uri = http://x.x.x.9:5000/v3/
  352. auth_url = http://x.x.x.9:35357/v3/
  353. memcached_servers = x.x.x.2:11211,x.x.x.3:11211,x.x.x.4:11211
  354. memcache_servers = x.x.x.2:11211,x.x.x.3:11211,x.x.x.4:11211
  355. auth_type = password
  356. project_domain_name = default
  357. user_domain_name = default
  358. project_name = service
  359. username = swift
  360. password = swift2
  361. delay_auth_decision = True
  362.  
  363. # paste.filter_factory = keystonemiddleware.auth_token:filter_factory
  364. # auth_uri = http://keystonehost:5000
  365. # auth_url = http://keystonehost:35357
  366. # auth_plugin = password
  367. # project_domain_id = default
  368. # user_domain_id = default
  369. # project_name = service
  370. # username = swift
  371. # password = password
  372. #
  373. # delay_auth_decision defaults to False, but leaving it as false will
  374. # prevent other auth systems, staticweb, tempurl, formpost, and ACLs from
  375. # working. This value must be explicitly set to True.
  376. # delay_auth_decision = False
  377. #
  378. # cache = swift.cache
  379. # include_service_catalog = False
  380. #
  381.  
  382.  
  383. [filter:keystoneauth]
  384.  
  385. use = egg:swift#keystoneauth
  386. operator_roles = admin,user
  387.  
  388.  
  389.  
  390. # use = egg:swift#keystoneauth
  391. # The reseller_prefix option lists account namespaces that this middleware is
  392. # responsible for. The prefix is placed before the Keystone project id.
  393. # For example, for project 12345678, and prefix AUTH, the account is
  394. # named AUTH_12345678 (i.e., path is /v1/AUTH_12345678/...).
  395. # Several prefixes are allowed by specifying a comma-separated list
  396. # as in: "reseller_prefix = AUTH, SERVICE". The empty string indicates a
  397. # single blank/empty prefix. If an empty prefix is required in a list of
  398. # prefixes, a value of '' (two single quote characters) indicates a
  399. # blank/empty prefix. Except for the blank/empty prefix, an underscore ('_')
  400. # character is appended to the value unless already present.
  401. # reseller_prefix = AUTH
  402. #
  403. # The user must have at least one role named by operator_roles on a
  404. # project in order to create, delete and modify containers and objects
  405. # and to set and read privileged headers such as ACLs.
  406. # If there are several reseller prefix items, you can prefix the
  407. # parameter so it applies only to those accounts (for example
  408. # the parameter SERVICE_operator_roles applies to the /v1/SERVICE_<project>
  409. # path). If you omit the prefix, the option applies to all reseller
  410. # prefix items. For the blank/empty prefix, prefix with '' (do not put
  411. # underscore after the two single quote characters).
  412. # operator_roles = admin, swiftoperator
  413. #
  414. # The reseller admin role has the ability to create and delete accounts
  415. # reseller_admin_role = ResellerAdmin
  416. #
  417. # This allows middleware higher in the WSGI pipeline to override auth
  418. # processing, useful for middleware such as tempurl and formpost. If you know
  419. # you're not going to use such middleware and you want a bit of extra security,
  420. # you can set this to false.
  421. # allow_overrides = true
  422. #
  423. # If the service_roles parameter is present, an X-Service-Token must be
  424. # present in the request that when validated, grants at least one role listed
  425. # in the parameter. The X-Service-Token may be scoped to any project.
  426. # If there are several reseller prefix items, you can prefix the
  427. # parameter so it applies only to those accounts (for example
  428. # the parameter SERVICE_service_roles applies to the /v1/SERVICE_<project>
  429. # path). If you omit the prefix, the option applies to all reseller
  430. # prefix items. For the blank/empty prefix, prefix with '' (do not put
  431. # underscore after the two single quote characters).
  432. # By default, no service_roles are required.
  433. # service_roles =
  434. #
  435. # For backwards compatibility, keystoneauth will match names in cross-tenant
  436. # access control lists (ACLs) when both the requesting user and the tenant
  437. # are in the default domain i.e the domain to which existing tenants are
  438. # migrated. The default_domain_id value configured here should be the same as
  439. # the value used during migration of tenants to keystone domains.
  440. # default_domain_id = default
  441. #
  442. # For a new installation, or an installation in which keystone projects may
  443. # move between domains, you should disable backwards compatible name matching
  444. # in ACLs by setting allow_names_in_acls to false:
  445. # allow_names_in_acls = true
  446.  
  447. [filter:healthcheck]
  448. use = egg:swift#healthcheck
  449. # An optional filesystem path, which if present, will cause the healthcheck
  450. # URL to return "503 Service Unavailable" with a body of "DISABLED BY FILE".
  451. # This facility may be used to temporarily remove a Swift node from a load
  452. # balancer pool during maintenance or upgrade (remove the file to allow the
  453. # node back into the load balancer pool).
  454. # disable_path =
  455.  
  456. [filter:cache]
  457. use = egg:swift#memcache
  458. memcache_servers = x.x.x.2:11211,x.x.x.3:11211,x.x.x.4:11211
  459. # You can override the default log routing for this filter here:
  460. # set log_name = cache
  461. # set log_facility = LOG_LOCAL0
  462. # set log_level = INFO
  463. # set log_headers = false
  464. # set log_address = /dev/log
  465. #
  466. # If not set here, the value for memcache_servers will be read from
  467. # memcache.conf (see memcache.conf-sample) or lacking that file, it will
  468. # default to the value below. You can specify multiple servers separated with
  469. # commas, as in: 10.1.2.3:11211,10.1.2.4:11211 (IPv6 addresses must
  470. # follow rfc3986 section-3.2.2, i.e. [::1]:11211)
  471. # memcache_servers = 127.0.0.1:11211
  472. #
  473. # Sets how memcache values are serialized and deserialized:
  474. # 0 = older, insecure pickle serialization
  475. # 1 = json serialization but pickles can still be read (still insecure)
  476. # 2 = json serialization only (secure and the default)
  477. # If not set here, the value for memcache_serialization_support will be read
  478. # from /etc/swift/memcache.conf (see memcache.conf-sample).
  479. # To avoid an instant full cache flush, existing installations should
  480. # upgrade with 0, then set to 1 and reload, then after some time (24 hours)
  481. # set to 2 and reload.
  482. # In the future, the ability to use pickle serialization will be removed.
  483. # memcache_serialization_support = 2
  484. #
  485. # Sets the maximum number of connections to each memcached server per worker
  486. # memcache_max_connections = 2
  487. #
  488. # More options documented in memcache.conf-sample
  489.  
  490. [filter:ratelimit]
  491. use = egg:swift#ratelimit
  492. # You can override the default log routing for this filter here:
  493. # set log_name = ratelimit
  494. # set log_facility = LOG_LOCAL0
  495. # set log_level = INFO
  496. # set log_headers = false
  497. # set log_address = /dev/log
  498. #
  499. # clock_accuracy should represent how accurate the proxy servers' system clocks
  500. # are with each other. 1000 means that all the proxies' clock are accurate to
  501. # each other within 1 millisecond.  No ratelimit should be higher than the
  502. # clock accuracy.
  503. # clock_accuracy = 1000
  504. #
  505. # max_sleep_time_seconds = 60
  506. #
  507. # log_sleep_time_seconds of 0 means disabled
  508. # log_sleep_time_seconds = 0
  509. #
  510. # allows for slow rates (e.g. running up to 5 sec's behind) to catch up.
  511. # rate_buffer_seconds = 5
  512. #
  513. # account_ratelimit of 0 means disabled
  514. # account_ratelimit = 0
  515.  
  516. # DEPRECATED- these will continue to work but will be replaced
  517. # by the X-Account-Sysmeta-Global-Write-Ratelimit flag.
  518. # Please see ratelimiting docs for details.
  519. # these are comma separated lists of account names
  520. # account_whitelist = a,b
  521. # account_blacklist = c,d
  522.  
  523. # with container_limit_x = r
  524. # for containers of size x limit write requests per second to r.  The container
  525. # rate will be linearly interpolated from the values given. With the values
  526. # below, a container of size 5 will get a rate of 75.
  527. # container_ratelimit_0 = 100
  528. # container_ratelimit_10 = 50
  529. # container_ratelimit_50 = 20
  530.  
  531. # Similarly to the above container-level write limits, the following will limit
  532. # container GET (listing) requests.
  533. # container_listing_ratelimit_0 = 100
  534. # container_listing_ratelimit_10 = 50
  535. # container_listing_ratelimit_50 = 20
  536.  
  537. [filter:domain_remap]
  538. use = egg:swift#domain_remap
  539. # You can override the default log routing for this filter here:
  540. # set log_name = domain_remap
  541. # set log_facility = LOG_LOCAL0
  542. # set log_level = INFO
  543. # set log_headers = false
  544. # set log_address = /dev/log
  545. #
  546. # storage_domain = example.com
  547. # path_root = v1
  548.  
  549. # Browsers can convert a host header to lowercase, so check that reseller
  550. # prefix on the account is the correct case. This is done by comparing the
  551. # items in the reseller_prefixes config option to the found prefix. If they
  552. # match except for case, the item from reseller_prefixes will be used
  553. # instead of the found reseller prefix. When none match, the default reseller
  554. # prefix is used. When no default reseller prefix is configured, any request
  555. # with an account prefix not in that list will be ignored by this middleware.
  556. # reseller_prefixes = AUTH
  557. # default_reseller_prefix =
  558.  
  559. [filter:catch_errors]
  560. use = egg:swift#catch_errors
  561. # You can override the default log routing for this filter here:
  562. # set log_name = catch_errors
  563. # set log_facility = LOG_LOCAL0
  564. # set log_level = INFO
  565. # set log_headers = false
  566. # set log_address = /dev/log
  567.  
  568. [filter:cname_lookup]
  569. # Note: this middleware requires python-dnspython
  570. use = egg:swift#cname_lookup
  571. # You can override the default log routing for this filter here:
  572. # set log_name = cname_lookup
  573. # set log_facility = LOG_LOCAL0
  574. # set log_level = INFO
  575. # set log_headers = false
  576. # set log_address = /dev/log
  577. #
  578. # Specify the storage_domain that match your cloud, multiple domains
  579. # can be specified separated by a comma
  580. # storage_domain = example.com
  581. #
  582. # lookup_depth = 1
  583.  
  584. # Note: Put staticweb just after your auth filter(s) in the pipeline
  585. [filter:staticweb]
  586. use = egg:swift#staticweb
  587. # You can override the default log routing for this filter here:
  588. # set log_name = staticweb
  589. # set log_facility = LOG_LOCAL0
  590. # set log_level = INFO
  591. # set log_headers = false
  592. # set log_address = /dev/log
  593. #
  594. # At times when it's impossible for staticweb to guess the outside
  595. # endpoint correctly, the url_base may be used to supply the URL
  596. # scheme and/or the host name (and port number) in order to generate
  597. # redirects.
  598. # Example values:
  599. #    http://www.example.com    - redirect to www.example.com
  600. #    https:                    - changes the schema only
  601. #    https://                  - same, changes the schema only
  602. #    //www.example.com:8080    - redirect www.example.com on port 8080
  603. #                                (schema unchanged)
  604. # url_base =
  605.  
  606. # Note: Put tempurl before dlo, slo and your auth filter(s) in the pipeline
  607. [filter:tempurl]
  608. use = egg:swift#tempurl
  609. # The methods allowed with Temp URLs.
  610. # methods = GET HEAD PUT POST DELETE
  611. methods = GET HEAD PUT POST DELETE
  612. #
  613. # The headers to remove from incoming requests. Simply a whitespace delimited
  614. # list of header names and names can optionally end with '*' to indicate a
  615. # prefix match. incoming_allow_headers is a list of exceptions to these
  616. # removals.
  617. # incoming_remove_headers = x-timestamp
  618. #
  619. # The headers allowed as exceptions to incoming_remove_headers. Simply a
  620. # whitespace delimited list of header names and names can optionally end with
  621. # '*' to indicate a prefix match.
  622. # incoming_allow_headers =
  623. #
  624. # The headers to remove from outgoing responses. Simply a whitespace delimited
  625. # list of header names and names can optionally end with '*' to indicate a
  626. # prefix match. outgoing_allow_headers is a list of exceptions to these
  627. # removals.
  628. # outgoing_remove_headers = x-object-meta-*
  629. #
  630. # The headers allowed as exceptions to outgoing_remove_headers. Simply a
  631. # whitespace delimited list of header names and names can optionally end with
  632. # '*' to indicate a prefix match.
  633. # outgoing_allow_headers = x-object-meta-public-*
  634.  
  635. # Note: Put formpost just before your auth filter(s) in the pipeline
  636. [filter:formpost]
  637. use = egg:swift#formpost
  638.  
  639. # Note: Just needs to be placed before the proxy-server in the pipeline.
  640. [filter:name_check]
  641. use = egg:swift#name_check
  642. # forbidden_chars = '"`<>
  643. # maximum_length = 255
  644. # forbidden_regexp = /\./|/\.\./|/\.$|/\.\.$
  645.  
  646. [filter:list-endpoints]
  647. use = egg:swift#list_endpoints
  648. # list_endpoints_path = /endpoints/
  649.  
  650. [filter:proxy-logging]
  651. use = egg:swift#proxy_logging
  652. # If not set, logging directives from [DEFAULT] without "access_" will be used
  653. # access_log_name = swift
  654. # access_log_facility = LOG_LOCAL0
  655. # access_log_level = INFO
  656. # access_log_address = /dev/log
  657. #
  658. # If set, access_log_udp_host will override access_log_address
  659. # access_log_udp_host =
  660. # access_log_udp_port = 514
  661. #
  662. # You can use log_statsd_* from [DEFAULT] or override them here:
  663. # access_log_statsd_host =
  664. # access_log_statsd_port = 8125
  665. # access_log_statsd_default_sample_rate = 1.0
  666. # access_log_statsd_sample_rate_factor = 1.0
  667. # access_log_statsd_metric_prefix =
  668. # access_log_headers = false
  669. #
  670. # If access_log_headers is True and access_log_headers_only is set only
  671. # these headers are logged. Multiple headers can be defined as comma separated
  672. # list like this: access_log_headers_only = Host, X-Object-Meta-Mtime
  673. # access_log_headers_only =
  674. #
  675. # By default, the X-Auth-Token is logged. To obscure the value,
  676. # set reveal_sensitive_prefix to the number of characters to log.
  677. # For example, if set to 12, only the first 12 characters of the
  678. # token appear in the log. An unauthorized access of the log file
  679. # won't allow unauthorized usage of the token. However, the first
  680. # 12 or so characters is unique enough that you can trace/debug
  681. # token usage. Set to 0 to suppress the token completely (replaced
  682. # by '...' in the log).
  683. # Note: reveal_sensitive_prefix will not affect the value
  684. # logged with access_log_headers=True.
  685. # reveal_sensitive_prefix = 16
  686. #
  687. # What HTTP methods are allowed for StatsD logging (comma-sep); request methods
  688. # not in this list will have "BAD_METHOD" for the <verb> portion of the metric.
  689. # log_statsd_valid_http_methods = GET,HEAD,POST,PUT,DELETE,COPY,OPTIONS
  690. #
  691. # Note: The double proxy-logging in the pipeline is not a mistake. The
  692. # left-most proxy-logging is there to log requests that were handled in
  693. # middleware and never made it through to the right-most middleware (and
  694. # proxy server). Double logging is prevented for normal requests. See
  695. # proxy-logging docs.
  696.  
  697. # Note: Put before both ratelimit and auth in the pipeline.
  698. [filter:bulk]
  699. use = egg:swift#bulk
  700. # max_containers_per_extraction = 10000
  701. # max_failed_extractions = 1000
  702. # max_deletes_per_request = 10000
  703. # max_failed_deletes = 1000
  704. #
  705. # In order to keep a connection active during a potentially long bulk request,
  706. # Swift may return whitespace prepended to the actual response body. This
  707. # whitespace will be yielded no more than every yield_frequency seconds.
  708. # yield_frequency = 10
  709. #
  710. # Note: The following parameter is used during a bulk delete of objects and
  711. # their container. This would frequently fail because it is very likely
  712. # that all replicated objects have not been deleted by the time the middleware got a
  713. # successful response. It can be configured the number of retries. And the
  714. # number of seconds to wait between each retry will be 1.5**retry
  715. # delete_container_retry_count = 0
  716. #
  717. # To speed up the bulk delete process, multiple deletes may be executed in
  718. # parallel. Avoid setting this too high, as it gives clients a force multiplier
  719. # which may be used in DoS attacks. The suggested range is between 2 and 10.
  720. # delete_concurrency = 2
  721.  
  722. # Note: Put after auth and staticweb in the pipeline.
  723. [filter:slo]
  724. use = egg:swift#slo
  725. # max_manifest_segments = 1000
  726. # max_manifest_size = 2097152
  727. #
  728. # Rate limiting applies only to segments smaller than this size (bytes).
  729. # rate_limit_under_size = 1048576
  730. #
  731. # Start rate-limiting SLO segment serving after the Nth small segment of a
  732. # segmented object.
  733. # rate_limit_after_segment = 10
  734. #
  735. # Once segment rate-limiting kicks in for an object, limit segments served
  736. # to N per second. 0 means no rate-limiting.
  737. # rate_limit_segments_per_sec = 1
  738. #
  739. # Time limit on GET requests (seconds)
  740. # max_get_time = 86400
  741. #
  742. # When deleting with ?multipart-manifest=delete, multiple deletes may be
  743. # executed in parallel. Avoid setting this too high, as it gives clients a
  744. # force multiplier which may be used in DoS attacks. The suggested range is
  745. # between 2 and 10.
  746. # delete_concurrency = 2
  747.  
  748. # Note: Put after auth and staticweb in the pipeline.
  749. # If you don't put it in the pipeline, it will be inserted for you.
  750. [filter:dlo]
  751. use = egg:swift#dlo
  752. # Start rate-limiting DLO segment serving after the Nth segment of a
  753. # segmented object.
  754. # rate_limit_after_segment = 10
  755. #
  756. # Once segment rate-limiting kicks in for an object, limit segments served
  757. # to N per second. 0 means no rate-limiting.
  758. # rate_limit_segments_per_sec = 1
  759. #
  760. # Time limit on GET requests (seconds)
  761. # max_get_time = 86400
  762.  
  763. # Note: Put after auth in the pipeline.
  764. [filter:container-quotas]
  765. use = egg:swift#container_quotas
  766.  
  767. # Note: Put after auth in the pipeline.
  768. [filter:account-quotas]
  769. use = egg:swift#account_quotas
  770.  
  771. [filter:gatekeeper]
  772. use = egg:swift#gatekeeper
  773. # Set this to false if you want to allow clients to set arbitrary X-Timestamps
  774. # on uploaded objects. This may be used to preserve timestamps when migrating
  775. # from a previous storage system, but risks allowing users to upload
  776. # difficult-to-delete data.
  777. # shunt_inbound_x_timestamp = true
  778. #
  779. # You can override the default log routing for this filter here:
  780. # set log_name = gatekeeper
  781. # set log_facility = LOG_LOCAL0
  782. # set log_level = INFO
  783. # set log_headers = false
  784. # set log_address = /dev/log
  785.  
  786. [filter:container_sync]
  787. use = egg:swift#container_sync
  788. # Set this to false if you want to disallow any full url values to be set for
  789. # any new X-Container-Sync-To headers. This will keep any new full urls from
  790. # coming in, but won't change any existing values already in the cluster.
  791. # Updating those will have to be done manually, as knowing what the true realm
  792. # endpoint should be cannot always be guessed.
  793. # allow_full_urls = true
  794. # Set this to specify this clusters //realm/cluster as "current" in /info
  795. # current = //REALM/CLUSTER
  796.  
  797. # Note: Put it at the beginning of the pipeline to profile all middleware. But
  798. # it is safer to put this after catch_errors, gatekeeper and healthcheck.
  799. [filter:xprofile]
  800. use = egg:swift#xprofile
  801. # This option enable you to switch profilers which should inherit from python
  802. # standard profiler. Currently the supported value can be 'cProfile',
  803. # 'eventlet.green.profile' etc.
  804. # profile_module = eventlet.green.profile
  805. #
  806. # This prefix will be used to combine process ID and timestamp to name the
  807. # profile data file.  Make sure the executing user has permission to write
  808. # into this path (missing path segments will be created, if necessary).
  809. # If you enable profiling in more than one type of daemon, you must override
  810. # it with an unique value like: /var/log/swift/profile/proxy.profile
  811. # log_filename_prefix = /tmp/log/swift/profile/default.profile
  812. #
  813. # the profile data will be dumped to local disk based on above naming rule
  814. # in this interval.
  815. # dump_interval = 5.0
  816. #
  817. # Be careful, this option will enable profiler to dump data into the file with
  818. # time stamp which means there will be lots of files piled up in the directory.
  819. # dump_timestamp = false
  820. #
  821. # This is the path of the URL to access the mini web UI.
  822. # path = /__profile__
  823. #
  824. # Clear the data when the wsgi server shutdown.
  825. # flush_at_shutdown = false
  826. #
  827. # unwind the iterator of applications
  828. # unwind = false
  829.  
  830. # Note: Put after slo, dlo in the pipeline.
  831. # If you don't put it in the pipeline, it will be inserted automatically.
  832. [filter:versioned_writes]
  833. use = egg:swift#versioned_writes
  834. # Enables using versioned writes middleware and exposing configuration
  835. # settings via HTTP GET /info.
  836. # WARNING: Setting this option bypasses the "allow_versions" option
  837. # in the container configuration file, which will be eventually
  838. # deprecated. See documentation for more details.
  839. # allow_versioned_writes = false
  840.  
  841. # Note: Put after auth and before dlo and slo middlewares.
  842. # If you don't put it in the pipeline, it will be inserted for you.
  843. [filter:copy]
  844. use = egg:swift#copy
  845. # Set object_post_as_copy = false to turn on fast posts where only the metadata
  846. # changes are stored anew and the original data file is kept in place. This
  847. # makes for quicker posts.
  848. # When object_post_as_copy is set to True, a POST request will be transformed
  849. # into a COPY request where source and destination objects are the same.
  850. # object_post_as_copy = true
  851.  
  852. # Note: To enable encryption, add the following 2 dependent pieces of crypto
  853. # middleware to the proxy-server pipeline. They should be to the right of all
  854. # other middleware apart from the final proxy-logging middleware, and in the
  855. # order shown in this example:
  856. # <other middleware> keymaster encryption proxy-logging proxy-server
  857. [filter:keymaster]
  858. use = egg:swift#keymaster
  859.  
  860. # Sets the root secret from which encryption keys are derived. This must be set
  861. # before first use to a value that is a base64 encoding of at least 32 bytes.
  862. # The security of all encrypted data critically depends on this key, therefore
  863. # it should be set to a high-entropy value. For example, a suitable value may
  864. # be obtained by base-64 encoding a 32 byte (or longer) value generated by a
  865. # cryptographically secure random number generator. Changing the root secret is
  866. # likely to result in data loss.
  867. encryption_root_secret = changeme
  868.  
  869. # Sets the path from which the keymaster config options should be read. This
  870. # allows multiple processes which need to be encryption-aware (for example,
  871. # proxy-server and container-sync) to share the same config file, ensuring
  872. # that the encryption keys used are the same. The format expected is similar
  873. # to other config files, with a single [keymaster] section and a single
  874. # encryption_root_secret option. If this option is set, the root secret
  875. # MUST NOT be set in proxy-server.conf.
  876. # keymaster_config_path =
  877.  
  878. [filter:encryption]
  879. use = egg:swift#encryption
  880.  
  881. # By default all PUT or POST'ed object data and/or metadata will be encrypted.
  882. # Encryption of new data and/or metadata may be disabled by setting
  883. # disable_encryption to True. However, all encryption middleware should remain
  884. # in the pipeline in order for existing encrypted data to be read.
  885. # disable_encryption = False
Add Comment
Please, Sign In to add comment