From 069432566fcfac1f1053677cc925ddafd750730a Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Sun, 18 Apr 2021 12:41:13 -0700 Subject: [PATCH] update license change for MinIO Signed-off-by: Harshavardhana --- .goreleaser.yml | 167 -- CREDITS | 833 +++------- LICENSE | 797 ++++++++-- NOTICE | 4 +- README.md | 6 +- README_zh_CN.md | 196 --- browser/LICENSE | 661 ++++++++ browser/README.md | 2 +- buildscripts/gen-ldflags.go | 31 +- cmd/acl-handlers.go | 31 +- cmd/admin-bucket-handlers.go | 31 +- cmd/admin-handlers-config-kv.go | 31 +- cmd/admin-handlers-users.go | 31 +- cmd/admin-handlers.go | 34 +- cmd/admin-handlers_test.go | 31 +- cmd/admin-heal-ops.go | 31 +- cmd/admin-router.go | 31 +- cmd/admin-server-info.go | 31 +- cmd/api-datatypes.go | 31 +- cmd/api-errors.go | 31 +- cmd/api-errors_test.go | 31 +- cmd/api-headers.go | 31 +- cmd/api-headers_test.go | 31 +- cmd/api-resources.go | 31 +- cmd/api-resources_test.go | 31 +- cmd/api-response.go | 31 +- cmd/api-response_test.go | 31 +- cmd/api-router.go | 31 +- cmd/api-utils.go | 31 +- cmd/api-utils_test.go | 31 +- cmd/apierrorcode_string.go | 17 + cmd/auth-handler.go | 31 +- cmd/auth-handler_test.go | 31 +- cmd/background-heal-ops.go | 31 +- cmd/background-newdisks-heal-ops.go | 31 +- cmd/background-newdisks-heal-ops_gen.go | 17 + cmd/background-newdisks-heal-ops_gen_test.go | 17 + cmd/benchmark-utils_test.go | 31 +- cmd/bitrot-streaming.go | 31 +- cmd/bitrot-whole.go | 31 +- cmd/bitrot.go | 31 +- cmd/bitrot_test.go | 31 +- cmd/bootstrap-peer-server.go | 31 +- cmd/bucket-encryption-handlers.go | 31 +- cmd/bucket-encryption.go | 31 +- cmd/bucket-encryption_test.go | 31 +- cmd/bucket-handlers.go | 31 +- cmd/bucket-handlers_test.go | 31 +- cmd/bucket-lifecycle-handlers.go | 31 +- cmd/bucket-lifecycle-handlers_test.go | 31 +- cmd/bucket-lifecycle.go | 31 +- cmd/bucket-listobjects-handlers.go | 31 +- cmd/bucket-metadata-sys.go | 31 +- cmd/bucket-metadata.go | 31 +- cmd/bucket-metadata_gen.go | 17 + cmd/bucket-metadata_gen_test.go | 17 + cmd/bucket-notification-handlers.go | 31 +- cmd/bucket-object-lock.go | 31 +- cmd/bucket-policy-handlers.go | 31 +- cmd/bucket-policy-handlers_test.go | 31 +- cmd/bucket-policy.go | 31 +- cmd/bucket-quota.go | 31 +- cmd/bucket-replication-stats.go | 31 +- cmd/bucket-replication.go | 31 +- cmd/bucket-stats.go | 31 +- cmd/bucket-stats_gen.go | 17 + cmd/bucket-stats_gen_test.go | 17 + cmd/bucket-targets.go | 31 +- cmd/bucket-versioning-handler.go | 31 +- cmd/bucket-versioning.go | 31 +- cmd/build-constants.go | 31 +- cmd/common-main.go | 31 +- cmd/config-common.go | 31 +- cmd/config-current.go | 31 +- cmd/config-current_test.go | 31 +- cmd/config-dir.go | 31 +- cmd/config-encrypted.go | 31 +- cmd/config-encrypted_test.go | 31 +- cmd/config-migrate.go | 31 +- cmd/config-migrate_test.go | 31 +- cmd/config-versions.go | 31 +- cmd/config.go | 31 +- cmd/config/api/api.go | 31 +- cmd/config/api/help.go | 31 +- cmd/config/bool-flag.go | 31 +- cmd/config/bool-flag_test.go | 31 +- cmd/config/cache/config.go | 31 +- cmd/config/cache/config_test.go | 31 +- cmd/config/cache/help.go | 31 +- cmd/config/cache/legacy.go | 31 +- cmd/config/cache/lookup.go | 31 +- cmd/config/certs.go | 31 +- cmd/config/certs_test.go | 31 +- cmd/config/certsinfo.go | 31 +- cmd/config/compress/compress.go | 31 +- cmd/config/compress/compress_test.go | 31 +- cmd/config/compress/help.go | 31 +- cmd/config/compress/legacy.go | 31 +- cmd/config/config.go | 32 +- cmd/config/config_test.go | 32 +- cmd/config/constants.go | 31 +- cmd/config/crypto.go | 23 +- cmd/config/crypto_test.go | 23 +- cmd/config/dns/etcd_dns.go | 31 +- cmd/config/dns/operator_dns.go | 31 +- cmd/config/dns/store.go | 31 +- cmd/config/dns/types.go | 31 +- cmd/config/errors-utils.go | 31 +- cmd/config/errors.go | 31 +- cmd/config/etcd/etcd.go | 31 +- cmd/config/etcd/etcd_test.go | 31 +- cmd/config/etcd/help.go | 31 +- cmd/config/heal/heal.go | 31 +- cmd/config/help.go | 31 +- cmd/config/identity/ldap/config.go | 31 +- cmd/config/identity/ldap/help.go | 31 +- cmd/config/identity/ldap/legacy.go | 31 +- cmd/config/identity/openid/ecdsa-sha3.go | 23 +- cmd/config/identity/openid/help.go | 31 +- cmd/config/identity/openid/jwks.go | 31 +- cmd/config/identity/openid/jwks_test.go | 31 +- cmd/config/identity/openid/jwt.go | 31 +- cmd/config/identity/openid/jwt_test.go | 31 +- cmd/config/identity/openid/legacy.go | 31 +- cmd/config/identity/openid/rsa-sha3.go | 23 +- cmd/config/identity/openid/validators.go | 31 +- cmd/config/identity/openid/validators_test.go | 31 +- cmd/config/legacy.go | 32 +- cmd/config/logger.go | 31 +- cmd/config/notify/config.go | 31 +- cmd/config/notify/help.go | 31 +- cmd/config/notify/legacy.go | 31 +- cmd/config/notify/parse.go | 31 +- cmd/config/policy/opa/config.go | 31 +- cmd/config/policy/opa/help.go | 31 +- cmd/config/policy/opa/legacy.go | 31 +- cmd/config/scanner/scanner.go | 31 +- cmd/config/storageclass/help.go | 31 +- cmd/config/storageclass/legacy.go | 31 +- cmd/config/storageclass/storage-class.go | 31 +- cmd/config/storageclass/storage-class_test.go | 31 +- cmd/consolelogger.go | 31 +- cmd/copy-part-range.go | 31 +- cmd/copy-part-range_test.go | 31 +- cmd/crossdomain-xml-handler.go | 31 +- cmd/crossdomain-xml-handler_test.go | 31 +- cmd/crypto/config.go | 23 +- cmd/crypto/doc.go | 23 +- cmd/crypto/error.go | 23 +- cmd/crypto/header.go | 23 +- cmd/crypto/header_test.go | 23 +- cmd/crypto/help.go | 31 +- cmd/crypto/json.go | 23 +- cmd/crypto/kes.go | 23 +- cmd/crypto/key.go | 23 +- cmd/crypto/key_test.go | 23 +- cmd/crypto/kms.go | 23 +- cmd/crypto/metadata.go | 23 +- cmd/crypto/metadata_test.go | 23 +- cmd/crypto/retry.go | 23 +- cmd/crypto/sse-c.go | 31 +- cmd/crypto/sse-kms.go | 31 +- cmd/crypto/sse-s3.go | 31 +- cmd/crypto/sse.go | 23 +- cmd/crypto/sse_test.go | 23 +- cmd/data-scanner.go | 31 +- cmd/data-update-tracker.go | 31 +- cmd/data-update-tracker_test.go | 31 +- cmd/data-usage-cache.go | 31 +- cmd/data-usage-cache_gen.go | 17 + cmd/data-usage-cache_gen_test.go | 17 + cmd/data-usage.go | 31 +- cmd/data-usage_test.go | 31 +- cmd/disk-cache-backend.go | 31 +- cmd/disk-cache-check-support_other.go | 31 +- cmd/disk-cache-check-support_windows.go | 31 +- cmd/disk-cache-stats.go | 31 +- cmd/disk-cache-utils.go | 31 +- cmd/disk-cache-utils_test.go | 31 +- cmd/disk-cache.go | 31 +- cmd/disk-cache_test.go | 31 +- cmd/dummy-data-generator_test.go | 31 +- cmd/dummy-handlers.go | 31 +- cmd/dynamic-timeouts.go | 31 +- cmd/dynamic-timeouts_test.go | 31 +- cmd/encryption-v1.go | 31 +- cmd/encryption-v1_test.go | 31 +- cmd/endpoint-ellipses.go | 31 +- cmd/endpoint-ellipses_test.go | 31 +- cmd/endpoint.go | 31 +- cmd/endpoint_test.go | 31 +- cmd/erasure-bucket.go | 31 +- cmd/erasure-coding.go | 31 +- cmd/erasure-common.go | 31 +- cmd/erasure-common_test.go | 31 +- cmd/erasure-decode.go | 31 +- cmd/erasure-decode_test.go | 31 +- cmd/erasure-encode.go | 31 +- cmd/erasure-encode_test.go | 31 +- cmd/erasure-errors.go | 31 +- cmd/erasure-heal_test.go | 31 +- cmd/erasure-healing-common.go | 31 +- cmd/erasure-healing-common_test.go | 31 +- cmd/erasure-healing.go | 31 +- cmd/erasure-healing_test.go | 31 +- cmd/erasure-lowlevel-heal.go | 31 +- cmd/erasure-metadata-utils.go | 31 +- cmd/erasure-metadata-utils_test.go | 31 +- cmd/erasure-metadata.go | 31 +- cmd/erasure-metadata_test.go | 31 +- cmd/erasure-multipart.go | 31 +- cmd/erasure-object.go | 31 +- cmd/erasure-object_test.go | 31 +- cmd/erasure-server-pool.go | 31 +- cmd/erasure-sets.go | 31 +- cmd/erasure-sets_test.go | 31 +- cmd/erasure-utils.go | 31 +- cmd/erasure.go | 31 +- cmd/erasure_test.go | 31 +- cmd/etcd.go | 31 +- cmd/fallocate.go | 25 - cmd/fallocate_linux.go | 35 - cmd/fallocate_linux_test.go | 29 - cmd/format-disk-cache.go | 31 +- cmd/format-disk-cache_test.go | 31 +- cmd/format-erasure.go | 31 +- cmd/format-erasure_test.go | 31 +- cmd/format-fs.go | 31 +- cmd/format-fs_test.go | 31 +- cmd/format-meta.go | 31 +- cmd/format_string.go | 17 + cmd/fs-tree-walk-pool.go | 31 +- cmd/fs-tree-walk-pool_test.go | 31 +- cmd/fs-v1-helpers.go | 65 +- cmd/fs-v1-helpers_test.go | 31 +- cmd/fs-v1-metadata.go | 31 +- cmd/fs-v1-metadata_test.go | 31 +- cmd/fs-v1-multipart.go | 31 +- cmd/fs-v1-multipart_test.go | 31 +- cmd/fs-v1-rwpool.go | 31 +- cmd/fs-v1-rwpool_test.go | 31 +- cmd/fs-v1.go | 31 +- cmd/fs-v1_test.go | 31 +- cmd/gateway-common.go | 31 +- cmd/gateway-common_test.go | 32 +- cmd/gateway-env.go | 31 +- cmd/gateway-interface.go | 31 +- cmd/gateway-main.go | 31 +- cmd/gateway-main_test.go | 31 +- cmd/gateway-metrics.go | 31 +- cmd/gateway-startup-msg.go | 31 +- cmd/gateway-startup-msg_test.go | 31 +- cmd/gateway-unsupported.go | 31 +- cmd/gateway/azure/gateway-azure.go | 31 +- cmd/gateway/azure/gateway-azure_test.go | 31 +- cmd/gateway/gateway.go | 31 +- cmd/gateway/gcs/gateway-gcs.go | 31 +- cmd/gateway/gcs/gateway-gcs_test.go | 31 +- cmd/gateway/hdfs/gateway-hdfs-utils.go | 31 +- cmd/gateway/hdfs/gateway-hdfs.go | 31 +- cmd/gateway/nas/gateway-nas.go | 31 +- cmd/gateway/s3/gateway-s3-metadata.go | 31 +- cmd/gateway/s3/gateway-s3-metadata_test.go | 31 +- cmd/gateway/s3/gateway-s3-sse.go | 31 +- cmd/gateway/s3/gateway-s3-utils.go | 31 +- cmd/gateway/s3/gateway-s3.go | 31 +- cmd/gateway/s3/gateway-s3_test.go | 31 +- cmd/generic-handlers.go | 31 +- cmd/generic-handlers_test.go | 31 +- cmd/global-heal.go | 31 +- cmd/globals.go | 31 +- cmd/handler-api.go | 31 +- cmd/handler-utils.go | 31 +- cmd/handler-utils_test.go | 31 +- cmd/hasher.go | 31 +- cmd/healthcheck-handler.go | 31 +- cmd/healthcheck-router.go | 31 +- cmd/healthinfo.go | 32 +- cmd/healthinfo_linux.go | 32 +- cmd/healthinfo_nonlinux.go | 32 +- cmd/http-stats.go | 31 +- cmd/http-tracer.go | 31 +- cmd/http-tracer_test.go | 31 +- cmd/http/close.go | 31 +- cmd/http/dial_dnscache.go | 31 +- cmd/http/dial_dnscache_test.go | 31 +- cmd/http/dial_linux.go | 31 +- cmd/http/dial_others.go | 31 +- cmd/http/headers.go | 31 +- cmd/http/listen_nix.go | 31 +- cmd/http/listen_others.go | 31 +- cmd/http/listener.go | 31 +- cmd/http/listener_test.go | 31 +- cmd/http/server.go | 31 +- cmd/http/server_test.go | 31 +- cmd/http/stats/http-traffic-recorder.go | 31 +- cmd/httprange.go | 31 +- cmd/httprange_test.go | 31 +- cmd/iam-etcd-store.go | 31 +- cmd/iam-etcd-store_test.go | 31 +- cmd/iam-object-store.go | 31 +- cmd/iam.go | 31 +- cmd/jwt.go | 31 +- cmd/jwt/parser.go | 31 +- cmd/jwt/parser_test.go | 31 +- cmd/jwt_test.go | 31 +- cmd/leak-detect_test.go | 19 +- cmd/listen-notification-handlers.go | 31 +- cmd/local-locker.go | 31 +- cmd/lock-rest-client.go | 31 +- cmd/lock-rest-client_test.go | 31 +- cmd/lock-rest-server-common.go | 31 +- cmd/lock-rest-server-common_test.go | 31 +- cmd/lock-rest-server.go | 31 +- cmd/logger/audit.go | 31 +- cmd/logger/config.go | 31 +- cmd/logger/console.go | 31 +- cmd/logger/help.go | 31 +- cmd/logger/legacy.go | 31 +- cmd/logger/logger.go | 31 +- cmd/logger/logonce.go | 31 +- cmd/logger/message/audit/entry.go | 31 +- cmd/logger/message/log/entry.go | 31 +- cmd/logger/reqinfo.go | 31 +- cmd/logger/target/console/console.go | 31 +- cmd/logger/target/http/http.go | 31 +- cmd/logger/targets.go | 31 +- cmd/logger/utils.go | 31 +- cmd/main.go | 31 +- cmd/metacache-bucket.go | 31 +- cmd/metacache-bucket_gen.go | 17 + cmd/metacache-bucket_gen_test.go | 17 + cmd/metacache-bucket_test.go | 17 + cmd/metacache-entries.go | 31 +- cmd/metacache-entries_test.go | 31 +- cmd/metacache-manager.go | 31 +- cmd/metacache-marker.go | 31 +- cmd/metacache-server-pool.go | 31 +- cmd/metacache-set.go | 31 +- cmd/metacache-stream.go | 31 +- cmd/metacache-stream_test.go | 31 +- cmd/metacache-walk.go | 31 +- cmd/metacache.go | 31 +- cmd/metacache_gen.go | 17 + cmd/metacache_gen_test.go | 17 + cmd/metacache_test.go | 31 +- cmd/metrics-router.go | 31 +- cmd/metrics-v2.go | 31 +- cmd/metrics.go | 31 +- cmd/namespace-lock.go | 31 +- cmd/namespace-lock_test.go | 31 +- cmd/naughty-disk_test.go | 31 +- cmd/net.go | 31 +- cmd/net_test.go | 31 +- cmd/notification-summary.go | 32 +- cmd/notification.go | 42 +- cmd/object-api-common.go | 31 +- cmd/object-api-datatypes.go | 31 +- cmd/object-api-deleteobject_test.go | 31 +- cmd/object-api-errors.go | 31 +- cmd/object-api-getobjectinfo_test.go | 31 +- cmd/object-api-input-checks.go | 31 +- cmd/object-api-interface.go | 31 +- cmd/object-api-listobjects_test.go | 31 +- cmd/object-api-multipart_test.go | 31 +- cmd/object-api-options.go | 31 +- cmd/object-api-putobject_test.go | 31 +- cmd/object-api-utils.go | 31 +- cmd/object-api-utils_test.go | 31 +- cmd/object-handlers-common.go | 31 +- cmd/object-handlers-common_test.go | 31 +- cmd/object-handlers.go | 31 +- cmd/object-handlers_test.go | 31 +- cmd/object_api_suite_test.go | 31 +- cmd/os-dirent_fileino.go | 31 +- cmd/os-dirent_ino.go | 33 +- cmd/os-dirent_namelen_bsd.go | 31 +- cmd/os-dirent_namelen_linux.go | 31 +- cmd/os-instrumented.go | 31 +- cmd/os-readdir_other.go | 31 +- cmd/os-readdir_test.go | 31 +- cmd/os-readdir_unix.go | 31 +- cmd/os-readdir_windows.go | 31 +- cmd/os-reliable.go | 31 +- cmd/os-reliable_test.go | 31 +- cmd/osmetric_string.go | 17 + cmd/peer-rest-client.go | 36 +- cmd/peer-rest-common.go | 31 +- cmd/peer-rest-server.go | 31 +- cmd/policy_test.go | 31 +- cmd/post-policy_test.go | 31 +- cmd/postpolicyform.go | 31 +- cmd/postpolicyform_test.go | 31 +- cmd/prepare-storage.go | 31 +- cmd/rest/client.go | 31 +- cmd/rest/client_test.go | 31 +- cmd/routers.go | 31 +- cmd/server-main.go | 31 +- cmd/server-main_test.go | 31 +- cmd/server-rlimit.go | 31 +- cmd/server-startup-msg.go | 31 +- cmd/server-startup-msg_test.go | 31 +- cmd/server_test.go | 31 +- cmd/service.go | 31 +- cmd/setup-type.go | 31 +- cmd/signals.go | 31 +- cmd/signature-v2.go | 31 +- cmd/signature-v2_test.go | 31 +- cmd/signature-v4-parser.go | 31 +- cmd/signature-v4-parser_test.go | 31 +- cmd/signature-v4-utils.go | 31 +- cmd/signature-v4-utils_test.go | 31 +- cmd/signature-v4.go | 31 +- cmd/signature-v4_test.go | 31 +- cmd/storage-datatypes.go | 31 +- cmd/storage-datatypes_gen.go | 17 + cmd/storage-datatypes_gen_test.go | 17 + cmd/storage-datatypes_test.go | 31 +- cmd/storage-errors.go | 31 +- cmd/storage-interface.go | 31 +- cmd/storage-rest-client.go | 31 +- cmd/storage-rest-common.go | 31 +- cmd/storage-rest-server.go | 33 +- cmd/storage-rest_test.go | 31 +- cmd/storagemetric_string.go | 17 + cmd/streaming-signature-v4.go | 31 +- cmd/streaming-signature-v4_test.go | 31 +- cmd/sts-datatypes.go | 31 +- cmd/sts-errors.go | 31 +- cmd/sts-handlers.go | 31 +- cmd/stserrorcode_string.go | 17 + cmd/test-utils_test.go | 31 +- cmd/tree-walk.go | 31 +- cmd/tree-walk_test.go | 31 +- cmd/typed-errors.go | 31 +- cmd/untar.go | 31 +- cmd/update-notifier.go | 31 +- cmd/update-notifier_test.go | 31 +- cmd/update.go | 31 +- cmd/update_fips.go | 31 +- cmd/update_nofips.go | 31 +- cmd/update_test.go | 31 +- cmd/utils.go | 31 +- cmd/utils_test.go | 31 +- cmd/version_test.go | 31 +- cmd/web-handler-context.go | 31 +- cmd/web-handler-context_test.go | 31 +- cmd/web-handlers.go | 31 +- cmd/web-handlers_test.go | 31 +- cmd/web-router.go | 31 +- cmd/xl-storage-disk-id-check.go | 31 +- cmd/xl-storage-errors.go | 31 +- cmd/xl-storage-errors_test.go | 31 +- cmd/xl-storage-format-utils.go | 31 +- cmd/xl-storage-format-v1.go | 31 +- cmd/xl-storage-format-v1_gen.go | 17 + cmd/xl-storage-format-v1_gen_test.go | 17 + cmd/xl-storage-format-v2.go | 31 +- cmd/xl-storage-format-v2_gen.go | 17 + cmd/xl-storage-format-v2_gen_test.go | 17 + cmd/xl-storage-format-v2_test.go | 31 +- cmd/xl-storage-format_test.go | 31 +- cmd/xl-storage.go | 31 +- cmd/xl-storage_noatime_notsupported.go | 31 +- cmd/xl-storage_noatime_supported.go | 31 +- cmd/xl-storage_test.go | 31 +- cmd/xl-storage_unix_test.go | 31 +- cmd/xl-storage_windows_test.go | 31 +- docs/bucket/versioning/xl-meta.go | 31 +- docs/sts/client-grants.go | 31 +- docs/sts/ldap.go | 32 +- docs/sts/web-identity.go | 31 +- docs/zh_CN/FreeBSD.md | 76 - docs/zh_CN/bucket/lifecycle/README.md | 57 - docs/zh_CN/bucket/notifications/README.md | 1409 ----------------- docs/zh_CN/bucket/quota/README.md | 40 - docs/zh_CN/bucket/quota/bucketquota.png | Bin 97414 -> 0 bytes .../replication/DELETE_bucket_replication.png | Bin 100391 -> 0 bytes .../replication/HEAD_bucket_replication.png | Bin 106916 -> 0 bytes .../replication/PUT_bucket_replication.png | Bin 91269 -> 0 bytes docs/zh_CN/bucket/replication/README.md | 84 - docs/zh_CN/bucket/retention/README.md | 60 - docs/zh_CN/bucket/versioning/DESIGN.md | 79 - docs/zh_CN/bucket/versioning/README.md | 166 -- .../versioning_DELETE_versionEnabled.png | Bin 147359 -> 0 bytes .../versioning_DELETE_versionEnabled_id.png | Bin 125589 -> 0 bytes .../versioning_GET_versionEnabled.png | Bin 137551 -> 0 bytes .../versioning_GET_versionEnabled_id.png | Bin 173247 -> 0 bytes .../versioning_PUT_versionEnabled.png | Bin 105255 -> 0 bytes .../bucket/versioning/xl-meta-to-json.go | 121 -- docs/zh_CN/caching/README.md | 20 - docs/zh_CN/chroot/README.md | 40 - docs/zh_CN/compression/README.md | 91 -- docs/zh_CN/config/README.md | 312 ---- docs/zh_CN/debugging/README.md | 59 - docs/zh_CN/deployment/kernel-tuning/README.md | 96 -- docs/zh_CN/disk-caching/DESIGN.md | 81 - docs/zh_CN/disk-caching/README.md | 42 - docs/zh_CN/distributed/DESIGN.md | 154 -- docs/zh_CN/distributed/README.md | 102 -- docs/zh_CN/docker/README.md | 167 -- docs/zh_CN/erasure/README.md | 62 - docs/zh_CN/erasure/storage-class/README.md | 103 -- docs/zh_CN/gateway/README.md | 9 - docs/zh_CN/gateway/azure-limitations.md | 17 - docs/zh_CN/gateway/azure.md | 43 - docs/zh_CN/gateway/gcs-limitations.md | 9 - docs/zh_CN/gateway/gcs.md | 59 - docs/zh_CN/gateway/nas.md | 43 - docs/zh_CN/large-bucket/README.md | 47 - docs/zh_CN/minio-limits.md | 56 - docs/zh_CN/multi-tenancy/README.md | 54 - docs/zh_CN/orchestration/README.md | 23 - docs/zh_CN/orchestration/dcos/README.md | 44 - .../orchestration/docker-compose/README.md | 49 - .../orchestration/docker-swarm/README.md | 86 - .../orchestration/kubernetes-yaml/README.md | 540 ------- docs/zh_CN/orchestration/kubernetes/README.md | 154 -- docs/zh_CN/shared-backend/DESIGN.md | 141 -- docs/zh_CN/shared-backend/README.md | 71 - docs/zh_CN/throttle/README.md | 53 - docs/zh_CN/tls/README.md | 131 -- main.go | 37 +- main_test.go | 31 +- minio.spec | 64 - mint/build/versioning/bucket.go | 34 +- mint/build/versioning/delete.go | 34 +- mint/build/versioning/get.go | 34 +- mint/build/versioning/legalhold.go | 34 +- mint/build/versioning/list.go | 34 +- mint/build/versioning/main.go | 22 +- mint/build/versioning/put.go | 34 +- mint/build/versioning/retention.go | 34 +- mint/build/versioning/stat.go | 34 +- mint/build/versioning/tagging.go | 34 +- mint/build/versioning/utils.go | 34 +- mint/run/core/aws-sdk-go/main.go | 34 +- mint/run/core/healthcheck/main.go | 34 +- mint/run/core/security/main.go | 24 +- pkg/auth/credentials.go | 31 +- pkg/auth/credentials_test.go | 31 +- pkg/bandwidth/bandwidth.go | 28 - pkg/bpool/bpool.go | 37 +- pkg/bpool/bpool_test.go | 37 +- pkg/bucket/bandwidth/measurement.go | 31 +- pkg/bucket/bandwidth/monitor.go | 43 +- pkg/bucket/bandwidth/monitor_test.go | 53 +- pkg/bucket/bandwidth/reader.go | 32 +- pkg/bucket/bandwidth/throttle.go | 31 +- pkg/bucket/encryption/bucket-sse-config.go | 31 +- .../encryption/bucket-sse-config_test.go | 31 +- pkg/bucket/lifecycle/action_string.go | 17 + pkg/bucket/lifecycle/and.go | 31 +- pkg/bucket/lifecycle/error.go | 31 +- pkg/bucket/lifecycle/expiration.go | 31 +- pkg/bucket/lifecycle/expiration_test.go | 31 +- pkg/bucket/lifecycle/filter.go | 31 +- pkg/bucket/lifecycle/filter_test.go | 31 +- pkg/bucket/lifecycle/lifecycle.go | 31 +- pkg/bucket/lifecycle/lifecycle_test.go | 31 +- pkg/bucket/lifecycle/noncurrentversion.go | 31 +- pkg/bucket/lifecycle/prefix.go | 31 +- pkg/bucket/lifecycle/rule.go | 31 +- pkg/bucket/lifecycle/rule_test.go | 31 +- pkg/bucket/lifecycle/tag.go | 31 +- pkg/bucket/lifecycle/transition.go | 31 +- pkg/bucket/object/lock/lock.go | 31 +- pkg/bucket/object/lock/lock_test.go | 31 +- pkg/bucket/policy/action.go | 31 +- pkg/bucket/policy/action_test.go | 31 +- pkg/bucket/policy/actionset.go | 31 +- pkg/bucket/policy/actionset_test.go | 31 +- .../policy/condition/binaryequalsfunc.go | 31 +- .../policy/condition/binaryequalsfunc_test.go | 31 +- pkg/bucket/policy/condition/boolfunc.go | 31 +- pkg/bucket/policy/condition/boolfunc_test.go | 31 +- pkg/bucket/policy/condition/dateequalsfunc.go | 31 +- .../policy/condition/dategreaterthanfunc.go | 31 +- .../policy/condition/datelessthanfunc.go | 31 +- pkg/bucket/policy/condition/func.go | 31 +- pkg/bucket/policy/condition/func_test.go | 31 +- pkg/bucket/policy/condition/ipaddressfunc.go | 31 +- .../policy/condition/ipaddressfunc_test.go | 31 +- pkg/bucket/policy/condition/jwt.go | 31 +- pkg/bucket/policy/condition/key.go | 31 +- pkg/bucket/policy/condition/key_test.go | 31 +- pkg/bucket/policy/condition/ldap.go | 31 +- pkg/bucket/policy/condition/name.go | 31 +- pkg/bucket/policy/condition/name_test.go | 31 +- pkg/bucket/policy/condition/nullfunc.go | 31 +- pkg/bucket/policy/condition/nullfunc_test.go | 31 +- .../policy/condition/numericequalsfunc.go | 31 +- .../policy/condition/numericgreaterfunc.go | 31 +- .../policy/condition/numericlessfunc.go | 31 +- .../policy/condition/stringequalsfunc.go | 31 +- .../policy/condition/stringequalsfunc_test.go | 31 +- .../condition/stringequalsignorecasefunc.go | 31 +- .../stringequalsignorecasefunc_test.go | 31 +- pkg/bucket/policy/condition/stringlikefunc.go | 31 +- .../policy/condition/stringlikefunc_test.go | 31 +- pkg/bucket/policy/condition/value.go | 31 +- pkg/bucket/policy/condition/value_test.go | 31 +- pkg/bucket/policy/condition/valueset.go | 31 +- pkg/bucket/policy/condition/valueset_test.go | 31 +- pkg/bucket/policy/effect.go | 31 +- pkg/bucket/policy/effect_test.go | 31 +- pkg/bucket/policy/error.go | 31 +- pkg/bucket/policy/id.go | 31 +- pkg/bucket/policy/id_test.go | 31 +- pkg/bucket/policy/policy.go | 31 +- pkg/bucket/policy/policy_test.go | 31 +- pkg/bucket/policy/principal.go | 31 +- pkg/bucket/policy/principal_test.go | 31 +- pkg/bucket/policy/resource.go | 31 +- pkg/bucket/policy/resource_test.go | 31 +- pkg/bucket/policy/resourceset.go | 31 +- pkg/bucket/policy/resourceset_test.go | 31 +- pkg/bucket/policy/statement.go | 31 +- pkg/bucket/policy/statement_test.go | 31 +- pkg/bucket/replication/and.go | 31 +- pkg/bucket/replication/destination.go | 31 +- pkg/bucket/replication/error.go | 31 +- pkg/bucket/replication/filter.go | 31 +- pkg/bucket/replication/replication.go | 31 +- pkg/bucket/replication/replication_test.go | 17 + pkg/bucket/replication/rule.go | 31 +- pkg/bucket/replication/tag.go | 31 +- pkg/bucket/versioning/error.go | 31 +- pkg/bucket/versioning/versioning.go | 31 +- pkg/certs/ca-certs.go | 31 +- pkg/certs/ca-certs_test.go | 31 +- pkg/certs/cert_pool_nix.go | 31 +- pkg/certs/cert_pool_windows.go | 31 +- pkg/certs/certs.go | 31 +- pkg/certs/certs_test.go | 31 +- pkg/certs/event.go | 31 +- pkg/certs/event_linux.go | 31 +- pkg/certs/event_others.go | 31 +- pkg/cgroup/linux.go | 31 +- pkg/cgroup/linux_test.go | 31 +- pkg/cgroup/others.go | 31 +- pkg/color/color.go | 31 +- pkg/console/console.go | 31 +- pkg/console/console_test.go | 31 +- pkg/console/themes.go | 31 +- pkg/disk/directio_darwin.go | 31 +- pkg/disk/directio_unix.go | 31 +- pkg/disk/directio_unsupported.go | 31 +- pkg/disk/disk.go | 31 +- pkg/disk/disk_test.go | 31 +- pkg/disk/disk_unix.go | 31 +- pkg/disk/disk_windows.go | 31 +- pkg/disk/fdatasync_linux.go | 31 +- pkg/disk/fdatasync_unix.go | 31 +- pkg/disk/fdatasync_unsupported.go | 31 +- pkg/disk/health.go | 32 +- pkg/disk/root_disk.go | 32 +- pkg/disk/stat_bsd.go | 31 +- pkg/disk/stat_freebsd.go | 31 +- pkg/disk/stat_linux.go | 31 +- pkg/disk/stat_linux_32bit.go | 31 +- pkg/disk/stat_linux_s390x.go | 31 +- pkg/disk/stat_netbsd.go | 31 +- pkg/disk/stat_openbsd.go | 31 +- pkg/disk/stat_solaris.go | 31 +- pkg/disk/stat_windows.go | 31 +- pkg/disk/type_bsd.go | 31 +- pkg/disk/type_linux.go | 31 +- pkg/disk/type_windows.go | 31 +- pkg/dsync/drwmutex.go | 31 +- pkg/dsync/drwmutex_test.go | 31 +- pkg/dsync/dsync-server_test.go | 31 +- pkg/dsync/dsync.go | 31 +- pkg/dsync/dsync_test.go | 33 +- pkg/dsync/rpc-client-impl_test.go | 31 +- pkg/dsync/rpc-client-interface.go | 31 +- pkg/ellipses/ellipses.go | 31 +- pkg/ellipses/ellipses_test.go | 31 +- pkg/env/env.go | 32 +- pkg/env/web_env.go | 32 +- pkg/env/web_env_test.go | 32 +- pkg/etag/etag.go | 23 +- pkg/etag/etag_test.go | 23 +- pkg/etag/reader.go | 23 +- pkg/event/arn.go | 31 +- pkg/event/arn_test.go | 31 +- pkg/event/config.go | 31 +- pkg/event/config_test.go | 31 +- pkg/event/errors.go | 31 +- pkg/event/event.go | 31 +- pkg/event/name.go | 31 +- pkg/event/name_test.go | 31 +- pkg/event/rules.go | 31 +- pkg/event/rules_test.go | 31 +- pkg/event/rulesmap.go | 31 +- pkg/event/rulesmap_test.go | 31 +- pkg/event/target/amqp.go | 31 +- pkg/event/target/common.go | 31 +- pkg/event/target/elasticsearch.go | 31 +- pkg/event/target/kafka.go | 31 +- pkg/event/target/kafka_scram_client.go | 31 +- pkg/event/target/mqtt.go | 31 +- pkg/event/target/mysql.go | 60 +- pkg/event/target/mysql_test.go | 31 +- pkg/event/target/nats.go | 31 +- pkg/event/target/nats_test.go | 31 +- pkg/event/target/nats_tls_test.go | 31 +- pkg/event/target/nsq.go | 31 +- pkg/event/target/nsq_test.go | 31 +- pkg/event/target/postgresql.go | 60 +- pkg/event/target/postgresql_test.go | 31 +- pkg/event/target/queuestore.go | 31 +- pkg/event/target/queuestore_test.go | 31 +- pkg/event/target/redis.go | 31 +- pkg/event/target/store.go | 31 +- pkg/event/target/webhook.go | 31 +- pkg/event/targetid.go | 31 +- pkg/event/targetid_test.go | 31 +- pkg/event/targetidset.go | 31 +- pkg/event/targetidset_test.go | 31 +- pkg/event/targetlist.go | 31 +- pkg/event/targetlist_test.go | 31 +- pkg/fips/api.go | 23 +- pkg/fips/fips.go | 23 +- pkg/fips/no_fips.go | 25 +- pkg/handlers/forwarder.go | 31 +- pkg/handlers/proxy.go | 35 +- pkg/handlers/proxy_test.go | 31 +- pkg/hash/errors.go | 31 +- pkg/hash/reader.go | 31 +- pkg/hash/reader_test.go | 31 +- pkg/hash/sha256_fips.go | 23 +- pkg/hash/sha256_nofips.go | 23 +- pkg/iam/policy/action.go | 31 +- pkg/iam/policy/action_test.go | 31 +- pkg/iam/policy/actionset.go | 31 +- pkg/iam/policy/actionset_test.go | 31 +- pkg/iam/policy/admin-action.go | 31 +- pkg/iam/policy/constants.go | 31 +- pkg/iam/policy/error.go | 31 +- pkg/iam/policy/policy.go | 31 +- pkg/iam/policy/policy_test.go | 31 +- pkg/iam/policy/resource.go | 31 +- pkg/iam/policy/resource_test.go | 31 +- pkg/iam/policy/resourceset.go | 31 +- pkg/iam/policy/resourceset_test.go | 31 +- pkg/iam/policy/statement.go | 31 +- pkg/iam/policy/statement_test.go | 31 +- pkg/ioutil/append-file_nix.go | 31 +- pkg/ioutil/append-file_windows.go | 31 +- pkg/ioutil/ioutil.go | 31 +- pkg/ioutil/ioutil_test.go | 31 +- pkg/ioutil/read_file.go | 33 +- pkg/ioutil/read_file_noatime_notsupported.go | 31 +- pkg/ioutil/read_file_noatime_supported.go | 31 +- pkg/kms/context.go | 23 +- pkg/kms/dek_test.go | 23 +- pkg/kms/kms.go | 23 +- pkg/kms/single-key.go | 23 +- pkg/kms/single-key_test.go | 23 +- pkg/licverifier/verifier.go | 31 +- pkg/licverifier/verifier_test.go | 31 +- pkg/lock/lock.go | 31 +- pkg/lock/lock_nix.go | 31 +- pkg/lock/lock_solaris.go | 31 +- pkg/lock/lock_test.go | 31 +- pkg/lock/lock_windows.go | 31 +- pkg/lock/lock_windows_test.go | 31 +- pkg/lsync/lrwmutex.go | 31 +- pkg/lsync/lrwmutex_test.go | 33 +- pkg/madmin/api-error-response.go | 31 +- pkg/madmin/api-log-entry.go | 31 +- pkg/madmin/api-log.go | 31 +- pkg/madmin/api.go | 31 +- pkg/madmin/api_test.go | 32 +- pkg/madmin/bandwidth.go | 59 +- pkg/madmin/config-commands.go | 32 +- pkg/madmin/config-help-commands.go | 32 +- pkg/madmin/config-history-commands.go | 32 +- pkg/madmin/config-kv-commands.go | 32 +- pkg/madmin/encrypt.go | 32 +- pkg/madmin/encrypt_fips.go | 25 + pkg/madmin/encrypt_nofips.go | 27 + pkg/madmin/encrypt_test.go | 32 +- pkg/madmin/examples/accounting-info.go | 32 +- pkg/madmin/examples/add-user-and-policy.go | 32 +- pkg/madmin/examples/bucket-bandwidth.go | 31 +- pkg/madmin/examples/bucket-quota.go | 32 +- pkg/madmin/examples/bucket-target.go | 32 +- pkg/madmin/examples/data-usage-info.go | 32 +- pkg/madmin/examples/heal-bucket.go | 32 +- pkg/madmin/examples/heal-format.go | 32 +- pkg/madmin/examples/heal-object.go | 32 +- pkg/madmin/examples/heal-status.go | 32 +- pkg/madmin/examples/kms-status.go | 32 +- pkg/madmin/examples/lock-clear.go | 32 +- pkg/madmin/examples/profiling.go | 32 +- pkg/madmin/examples/server-info.go | 32 +- pkg/madmin/examples/service-accounts.go | 32 +- pkg/madmin/examples/service-restart.go | 32 +- pkg/madmin/examples/service-trace.go | 32 +- pkg/madmin/examples/storage-info.go | 32 +- pkg/madmin/examples/top-locks.go | 32 +- pkg/madmin/group-commands.go | 32 +- pkg/madmin/heal-commands.go | 32 +- pkg/madmin/heal-commands_test.go | 32 +- pkg/madmin/health.go | 32 +- pkg/madmin/info-commands.go | 32 +- pkg/madmin/kms-commands.go | 31 +- pkg/madmin/parse-kv.go | 32 +- pkg/madmin/policy-commands.go | 32 +- pkg/madmin/profiling-commands.go | 32 +- pkg/madmin/quota-commands.go | 32 +- pkg/madmin/remote-target-commands.go | 32 +- pkg/madmin/retry.go | 32 +- pkg/madmin/service-commands.go | 32 +- pkg/madmin/top-commands.go | 32 +- pkg/madmin/transport.go | 31 +- pkg/madmin/update-commands.go | 32 +- pkg/madmin/user-commands.go | 32 +- pkg/madmin/utils.go | 31 +- pkg/mimedb/db.go | 32 +- pkg/mimedb/db_test.go | 31 +- pkg/mimedb/resolve-db.go | 31 +- pkg/mimedb/util/gen-db.go | 31 +- pkg/mountinfo/mountinfo.go | 31 +- pkg/mountinfo/mountinfo_linux.go | 31 +- pkg/mountinfo/mountinfo_linux_test.go | 31 +- pkg/mountinfo/mountinfo_others.go | 31 +- pkg/mountinfo/mountinfo_windows.go | 31 +- pkg/net/health.go | 32 +- pkg/net/host.go | 31 +- pkg/net/host_test.go | 31 +- pkg/net/port.go | 31 +- pkg/net/port_test.go | 31 +- pkg/net/url.go | 31 +- pkg/net/url_test.go | 31 +- pkg/pubsub/pubsub.go | 31 +- pkg/pubsub/pubsub_test.go | 31 +- pkg/quick/encoding.go | 33 +- pkg/quick/errorutil.go | 33 +- pkg/quick/quick.go | 33 +- pkg/quick/quick_test.go | 33 +- pkg/rpc/LICENSE | 797 ++++++++-- pkg/rpc/compression_selector.go | 9 +- pkg/rpc/doc.go | 9 +- pkg/rpc/encoder_selector.go | 5 +- pkg/rpc/json2/client.go | 7 +- pkg/rpc/json2/error.go | 7 +- pkg/rpc/json2/json_test.go | 7 +- pkg/rpc/json2/server.go | 7 +- pkg/rpc/map.go | 7 +- pkg/rpc/server.go | 7 +- pkg/rpc/server_test.go | 7 +- pkg/s3select/csv/args.go | 31 +- pkg/s3select/csv/errors.go | 31 +- pkg/s3select/csv/reader.go | 31 +- pkg/s3select/csv/reader_test.go | 31 +- pkg/s3select/csv/record.go | 31 +- pkg/s3select/csv/recordtransform.go | 31 +- pkg/s3select/errors.go | 31 +- pkg/s3select/genmessage.go | 31 +- pkg/s3select/internal/parquet-go/column.go | 31 +- pkg/s3select/internal/parquet-go/common.go | 31 +- .../internal/parquet-go/common/common.go | 17 + .../internal/parquet-go/compression.go | 31 +- .../parquet-go/data/column-grouplist_test.go | 31 +- .../parquet-go/data/column-grouptype_test.go | 31 +- .../parquet-go/data/column-listoflist_test.go | 31 +- .../parquet-go/data/column-map_test.go | 31 +- .../data/column-primitivelist_test.go | 31 +- .../data/column-primitivetype_test.go | 31 +- .../internal/parquet-go/data/column.go | 31 +- .../internal/parquet-go/data/column_test.go | 31 +- pkg/s3select/internal/parquet-go/data/data.go | 31 +- .../internal/parquet-go/data/jsonvalue.go | 31 +- .../internal/parquet-go/data/result.go | 31 +- pkg/s3select/internal/parquet-go/decode.go | 31 +- pkg/s3select/internal/parquet-go/encode.go | 31 +- .../internal/parquet-go/encode_test.go | 31 +- .../internal/parquet-go/encoding/common.go | 31 +- .../parquet-go/encoding/common_test.go | 31 +- .../parquet-go/encoding/delta-encode.go | 31 +- .../parquet-go/encoding/plain-encode.go | 31 +- .../parquet-go/encoding/plain-encode_test.go | 31 +- .../parquet-go/encoding/rle-encode.go | 31 +- .../parquet-go/encoding/rle-encode_test.go | 31 +- .../parquet-go/encoding/rledict-encode.go | 31 +- pkg/s3select/internal/parquet-go/endian.go | 31 +- .../gen-go/parquet/GoUnusedProtection__.go | 18 +- .../gen-go/parquet/parquet-consts.go | 18 +- .../parquet-go/gen-go/parquet/parquet.go | 18 +- pkg/s3select/internal/parquet-go/page.go | 31 +- pkg/s3select/internal/parquet-go/reader.go | 31 +- .../internal/parquet-go/reader_test.go | 31 +- pkg/s3select/internal/parquet-go/record.go | 31 +- .../internal/parquet-go/schema/element.go | 31 +- .../internal/parquet-go/schema/tree.go | 31 +- .../internal/parquet-go/schema/tree_test.go | 31 +- pkg/s3select/internal/parquet-go/table.go | 31 +- .../tools/parquet2csv/parquet2csv.go | 31 +- .../tools/parquet2json/parquet2json.go | 31 +- pkg/s3select/internal/parquet-go/writer.go | 31 +- .../internal/parquet-go/writer_test.go | 31 +- pkg/s3select/json/args.go | 31 +- pkg/s3select/json/errors.go | 31 +- pkg/s3select/json/preader.go | 31 +- pkg/s3select/json/preader_test.go | 31 +- pkg/s3select/json/reader.go | 31 +- pkg/s3select/json/reader_test.go | 31 +- pkg/s3select/json/record.go | 31 +- pkg/s3select/message.go | 31 +- pkg/s3select/parquet/args.go | 31 +- pkg/s3select/parquet/errors.go | 31 +- pkg/s3select/parquet/reader.go | 31 +- pkg/s3select/progress.go | 31 +- pkg/s3select/select.go | 31 +- pkg/s3select/select_benchmark_test.go | 31 +- pkg/s3select/select_test.go | 31 +- pkg/s3select/simdj/errors.go | 31 +- pkg/s3select/simdj/reader.go | 31 +- pkg/s3select/simdj/reader_amd64_test.go | 31 +- pkg/s3select/simdj/record.go | 31 +- pkg/s3select/sql/aggregation.go | 31 +- pkg/s3select/sql/analysis.go | 31 +- pkg/s3select/sql/errors.go | 31 +- pkg/s3select/sql/evaluate.go | 31 +- pkg/s3select/sql/funceval.go | 31 +- pkg/s3select/sql/jsonpath.go | 31 +- pkg/s3select/sql/jsonpath_test.go | 31 +- pkg/s3select/sql/parser.go | 31 +- pkg/s3select/sql/parser_test.go | 31 +- pkg/s3select/sql/record.go | 31 +- pkg/s3select/sql/statement.go | 31 +- pkg/s3select/sql/stringfuncs.go | 31 +- pkg/s3select/sql/stringfuncs_test.go | 31 +- pkg/s3select/sql/timestampfuncs.go | 31 +- pkg/s3select/sql/timestampfuncs_test.go | 31 +- pkg/s3select/sql/utils.go | 31 +- pkg/s3select/sql/value.go | 31 +- pkg/s3select/sql/value_test.go | 31 +- pkg/s3select/unused-errors.go | 31 +- pkg/safe/safe.go | 33 +- pkg/safe/safe_test.go | 31 +- pkg/smart/bindata.go | 17 + pkg/smart/nvme.go | 40 +- pkg/smart/smart.go | 31 +- pkg/smart/types.go | 31 +- pkg/sync/errgroup/errgroup.go | 31 +- pkg/sync/errgroup/errgroup_test.go | 31 +- pkg/sys/rlimit-file_bsd.go | 31 +- pkg/sys/rlimit-file_nix.go | 31 +- pkg/sys/rlimit-file_test.go | 31 +- pkg/sys/rlimit-file_windows.go | 31 +- pkg/sys/rlimit-memory_bsd.go | 31 +- pkg/sys/rlimit-memory_nix.go | 31 +- pkg/sys/rlimit-memory_openbsd.go | 31 +- pkg/sys/rlimit-memory_test.go | 31 +- pkg/sys/rlimit-memory_windows.go | 31 +- pkg/sys/stats.go | 31 +- pkg/sys/stats_bsd.go | 31 +- pkg/sys/stats_darwin.go | 31 +- pkg/sys/stats_linux.go | 31 +- pkg/sys/stats_linux_32bit.go | 31 +- pkg/sys/stats_netbsd.go | 31 +- pkg/sys/stats_solaris.go | 31 +- pkg/sys/stats_test.go | 31 +- pkg/sys/stats_windows.go | 31 +- pkg/sys/threads.go | 31 +- pkg/sys/threads_other.go | 31 +- pkg/trace/trace.go | 31 +- pkg/trie/trie.go | 31 +- pkg/trie/trie_test.go | 31 +- pkg/wildcard/match.go | 31 +- pkg/wildcard/match_test.go | 31 +- pkg/words/damerau-levenshtein.go | 31 +- pkg/words/damerau-levenshtein_test.go | 31 +- 977 files changed, 16665 insertions(+), 19688 deletions(-) delete mode 100644 .goreleaser.yml delete mode 100644 README_zh_CN.md create mode 100644 browser/LICENSE delete mode 100644 cmd/fallocate.go delete mode 100644 cmd/fallocate_linux.go delete mode 100644 cmd/fallocate_linux_test.go delete mode 100644 docs/zh_CN/FreeBSD.md delete mode 100644 docs/zh_CN/bucket/lifecycle/README.md delete mode 100644 docs/zh_CN/bucket/notifications/README.md delete mode 100644 docs/zh_CN/bucket/quota/README.md delete mode 100644 docs/zh_CN/bucket/quota/bucketquota.png delete mode 100644 docs/zh_CN/bucket/replication/DELETE_bucket_replication.png delete mode 100644 docs/zh_CN/bucket/replication/HEAD_bucket_replication.png delete mode 100644 docs/zh_CN/bucket/replication/PUT_bucket_replication.png delete mode 100644 docs/zh_CN/bucket/replication/README.md delete mode 100644 docs/zh_CN/bucket/retention/README.md delete mode 100644 docs/zh_CN/bucket/versioning/DESIGN.md delete mode 100644 docs/zh_CN/bucket/versioning/README.md delete mode 100644 docs/zh_CN/bucket/versioning/versioning_DELETE_versionEnabled.png delete mode 100644 docs/zh_CN/bucket/versioning/versioning_DELETE_versionEnabled_id.png delete mode 100644 docs/zh_CN/bucket/versioning/versioning_GET_versionEnabled.png delete mode 100644 docs/zh_CN/bucket/versioning/versioning_GET_versionEnabled_id.png delete mode 100644 docs/zh_CN/bucket/versioning/versioning_PUT_versionEnabled.png delete mode 100644 docs/zh_CN/bucket/versioning/xl-meta-to-json.go delete mode 100644 docs/zh_CN/caching/README.md delete mode 100644 docs/zh_CN/chroot/README.md delete mode 100644 docs/zh_CN/compression/README.md delete mode 100644 docs/zh_CN/config/README.md delete mode 100644 docs/zh_CN/debugging/README.md delete mode 100644 docs/zh_CN/deployment/kernel-tuning/README.md delete mode 100644 docs/zh_CN/disk-caching/DESIGN.md delete mode 100644 docs/zh_CN/disk-caching/README.md delete mode 100644 docs/zh_CN/distributed/DESIGN.md delete mode 100644 docs/zh_CN/distributed/README.md delete mode 100644 docs/zh_CN/docker/README.md delete mode 100644 docs/zh_CN/erasure/README.md delete mode 100644 docs/zh_CN/erasure/storage-class/README.md delete mode 100644 docs/zh_CN/gateway/README.md delete mode 100644 docs/zh_CN/gateway/azure-limitations.md delete mode 100644 docs/zh_CN/gateway/azure.md delete mode 100644 docs/zh_CN/gateway/gcs-limitations.md delete mode 100644 docs/zh_CN/gateway/gcs.md delete mode 100644 docs/zh_CN/gateway/nas.md delete mode 100644 docs/zh_CN/large-bucket/README.md delete mode 100644 docs/zh_CN/minio-limits.md delete mode 100644 docs/zh_CN/multi-tenancy/README.md delete mode 100644 docs/zh_CN/orchestration/README.md delete mode 100644 docs/zh_CN/orchestration/dcos/README.md delete mode 100644 docs/zh_CN/orchestration/docker-compose/README.md delete mode 100644 docs/zh_CN/orchestration/docker-swarm/README.md delete mode 100644 docs/zh_CN/orchestration/kubernetes-yaml/README.md delete mode 100644 docs/zh_CN/orchestration/kubernetes/README.md delete mode 100644 docs/zh_CN/shared-backend/DESIGN.md delete mode 100644 docs/zh_CN/shared-backend/README.md delete mode 100644 docs/zh_CN/throttle/README.md delete mode 100644 docs/zh_CN/tls/README.md delete mode 100644 minio.spec delete mode 100644 pkg/bandwidth/bandwidth.go create mode 100644 pkg/madmin/encrypt_fips.go create mode 100644 pkg/madmin/encrypt_nofips.go diff --git a/.goreleaser.yml b/.goreleaser.yml deleted file mode 100644 index 0735fff30..000000000 --- a/.goreleaser.yml +++ /dev/null @@ -1,167 +0,0 @@ -project_name: minio - -release: - name_template: "Version {{.MinIO.Version}}" - disable: true - github: - owner: minio - name: minio - -env: - - CGO_ENABLED=0 - - GO111MODULE=on - -before: - hooks: - - make clean - - go generate ./... - - go mod tidy - - go mod download - -builds: - - - goos: - - linux - - darwin - - windows - - freebsd - - goarch: - - amd64 - - arm64 - - arm - - ppc64le - - s390x - - goarm: - - 7 - - ignore: - - goos: darwin - goarch: arm64 - - goos: darwin - goarch: arm - - goos: darwin - goarch: ppc64le - - goos: darwin - goarch: s390x - - goos: windows - goarch: arm64 - - goos: windows - goarch: arm - - goos: windows - goarch: ppc64le - - goos: windows - goarch: s390x - - goos: freebsd - goarch: arm - - goos: freebsd - goarch: arm64 - - goos: freebsd - goarch: ppc64le - - goos: freebsd - goarch: s390x - - flags: - - -tags=kqueue - - -trimpath - - ldflags: - - "-s -w -X github.com/minio/minio/cmd.Version={{.Version}} -X github.com/minio/minio/cmd.ReleaseTag={{.Tag}} -X github.com/minio/minio/cmd.CommitID={{.FullCommit}} -X github.com/minio/minio/cmd.ShortCommitID={{.ShortCommit}}" - -archives: - - - format: binary - name_template: "{{ .Binary }}-release/{{ .Os }}-{{ .Arch }}/{{ .Binary }}.{{ .Version }}" - -nfpms: - - - id: minio - package_name: minio - vendor: MinIO, Inc. - homepage: https://min.io/ - maintainer: dev@min.io - description: MinIO is a High Performance Object Storage released under Apache License v2.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads. - license: Apache 2.0 - bindir: /usr/bin - formats: - - deb - - rpm - overrides: - deb: - file_name_template: "{{ .Binary }}-release/debs/{{ .ProjectName }}-{{ .Version }}_{{ .Arch }}" - replacements: - arm: armv7 - files: - "NOTICE": "/usr/share/minio/NOTICE" - "CREDITS": "/usr/share/minio/CREDITS" - "LICENSE": "/usr/share/minio/LICENSE" - "README.md": "/usr/share/minio/README.md" - rpm: - file_name_template: "{{ .Binary }}-release/rpms/{{ .ProjectName }}-{{ .Version }}.{{ .Arch }}" - replacements: - amd64: x86_64 - arm64: aarch64 - arm: armv7 - files: - "NOTICE": "/usr/share/minio/NOTICE" - "CREDITS": "/usr/share/minio/CREDITS" - "LICENSE": "/usr/share/minio/LICENSE" - "README.md": "/usr/share/minio/README.md" - -checksum: - algorithm: sha256 - -signs: - - - signature: "${artifact}.minisig" - cmd: "sh" - args: - - '-c' - - 'minisign -s /media/${USER}/minio/minisign.key -qQSm ${artifact} < /media/${USER}/minio/minisign-passphrase' - artifacts: all - -changelog: - sort: asc - filters: - exclude: - - '^Update yaml files' - -dockers: - - - goos: linux - goarch: amd64 - dockerfile: Dockerfile.release - image_templates: - - minio/minio:{{ .Tag }} - - minio/minio:latest - - - - goos: linux - goarch: ppc64le - dockerfile: Dockerfile.ppc64le.release - image_templates: - - minio/minio:{{ .Tag }}-ppc64le - - - - goos: linux - goarch: s390x - dockerfile: Dockerfile.s390x.release - image_templates: - - minio/minio:{{ .Tag }}-s390x - - - - goos: linux - goarch: arm64 - goarm: '' - dockerfile: Dockerfile.arm64.release - image_templates: - - minio/minio:{{ .Tag }}-arm64 - - - - goos: linux - goarch: arm - goarm: '7' - dockerfile: Dockerfile.arm.release - image_templates: - - minio/minio:{{ .Tag }}-arm diff --git a/CREDITS b/CREDITS index bc340b1e3..9c86dac0a 100644 --- a/CREDITS +++ b/CREDITS @@ -1324,203 +1324,6 @@ https://github.com/Azure/go-autorest/autorest/date ================================================================ -github.com/Azure/go-autorest/autorest/mocks -https://github.com/Azure/go-autorest/autorest/mocks ----------------------------------------------------------------- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2015 Microsoft Corporation - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -================================================================ - github.com/Azure/go-autorest/tracing https://github.com/Azure/go-autorest/tracing ---------------------------------------------------------------- @@ -1852,6 +1655,33 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================================ +github.com/VividCortex/ewma +https://github.com/VividCortex/ewma +---------------------------------------------------------------- +The MIT License + +Copyright (c) 2013 VividCortex + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +================================================================ + github.com/alecthomas/participle https://github.com/alecthomas/participle ---------------------------------------------------------------- @@ -1903,214 +1733,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================================ -github.com/aws/aws-sdk-go -https://github.com/aws/aws-sdk-go ----------------------------------------------------------------- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -================================================================ - github.com/bcicen/jstream https://github.com/bcicen/jstream ---------------------------------------------------------------- @@ -3696,6 +3318,7 @@ Redistribution and use in source and binary forms, with or without modification, THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ================================================================ github.com/fatih/color @@ -12047,25 +11670,6 @@ https://github.com/jcmturner/rpc/v2 ================================================================ -github.com/jmespath/go-jmespath -https://github.com/jmespath/go-jmespath ----------------------------------------------------------------- -Copyright 2015 James Saryerwinnie - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -================================================================ - github.com/jonboulle/clockwork https://github.com/jonboulle/clockwork ---------------------------------------------------------------- @@ -12471,28 +12075,28 @@ SOFTWARE. github.com/klauspost/readahead https://github.com/klauspost/readahead ---------------------------------------------------------------- -The MIT License (MIT) - -Copyright (c) 2015 Klaus Post - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - +The MIT License (MIT) + +Copyright (c) 2015 Klaus Post + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + ================================================================ @@ -12589,6 +12193,213 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI ================================================================ +github.com/magefile/mage +https://github.com/magefile/mage +---------------------------------------------------------------- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2017 the Mage authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +================================================================ + github.com/mailru/easyjson https://github.com/mailru/easyjson ---------------------------------------------------------------- @@ -14480,41 +14291,6 @@ THE SOFTWARE. ================================================================ -github.com/mmcloughlin/avo -https://github.com/mmcloughlin/avo ----------------------------------------------------------------- -BSD 3-Clause License - -Copyright (c) 2018, Michael McLoughlin -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -================================================================ - github.com/modern-go/concurrent https://github.com/modern-go/concurrent ---------------------------------------------------------------- @@ -16503,17 +16279,6 @@ IN THE SOFTWARE. ================================================================ -github.com/pascaldekloe/goe -https://github.com/pascaldekloe/goe ----------------------------------------------------------------- -To the extent possible under law, Pascal S. de Kloe has waived all -copyright and related or neighboring rights to Go Enterprice. This -work is published from The Netherlands. - -https://creativecommons.org/publicdomain/zero/1.0/legalcode - -================================================================ - github.com/philhofer/fwd https://github.com/philhofer/fwd ---------------------------------------------------------------- @@ -17450,41 +17215,6 @@ https://github.com/prometheus/procfs ================================================================ -github.com/quasilyte/go-ruleguard -https://github.com/quasilyte/go-ruleguard ----------------------------------------------------------------- -BSD 3-Clause License - -Copyright (c) 2019, Iskander (Alex) Sharipov / quasilyte -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -================================================================ - github.com/rcrowley/go-metrics https://github.com/rcrowley/go-metrics ---------------------------------------------------------------- @@ -17651,8 +17381,8 @@ SOFTWARE. ================================================================ -github.com/shirou/gopsutil -https://github.com/shirou/gopsutil +github.com/shirou/gopsutil/v3 +https://github.com/shirou/gopsutil/v3 ---------------------------------------------------------------- gopsutil is distributed under BSD license reproduced below. @@ -20361,34 +20091,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================ -gopkg.in/asn1-ber.v1 -https://gopkg.in/asn1-ber.v1 ----------------------------------------------------------------- -The MIT License (MIT) - -Copyright (c) 2011-2015 Michael Mitton (mmitton@gmail.com) -Portions copyright (c) 2015-2016 go-asn1-ber Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -================================================================ - gopkg.in/check.v1 https://gopkg.in/check.v1 ---------------------------------------------------------------- @@ -20420,23 +20122,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================ -gopkg.in/cheggaaa/pb.v1 -https://gopkg.in/cheggaaa/pb.v1 ----------------------------------------------------------------- -Copyright (c) 2012-2015, Sergey Cherepanov -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -================================================================ - gopkg.in/ini.v1 https://gopkg.in/ini.v1 ---------------------------------------------------------------- diff --git a/LICENSE b/LICENSE index d64569567..be3f7b28e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,202 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + Preamble - 1. Definitions. + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + The precise terms and conditions for copying, distribution and +modification follow. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + TERMS AND CONDITIONS - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + 0. Definitions. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "This License" refers to version 3 of the GNU Affero General Public License. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + A "covered work" means either the unmodified Program or a work based +on the Program. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + 1. Source Code. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. - END OF TERMS AND CONDITIONS + The Corresponding Source for a work in source code form is that +same work. - APPENDIX: How to apply the Apache License to your work. + 2. Basic Permissions. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. - Copyright [yyyy] [name of copyright owner] + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. - http://www.apache.org/licenses/LICENSE-2.0 + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/NOTICE b/NOTICE index 1e8fd3b92..f7049a854 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ -MinIO Cloud Storage, (C) 2014-2020 MinIO, Inc. +MinIO Project, (C) 2015-2021 MinIO, Inc. This product includes software developed at MinIO, Inc. (https://min.io/). @@ -6,4 +6,4 @@ This product includes software developed at MinIO, Inc. The MinIO project contains unmodified/modified subcomponents too with separate copyright notices and license terms. Your use of the source code for these subcomponents is subject to the terms and conditions -of Apache License Version 2.0 +of GNU Affero General Public License 3.0 or later. diff --git a/README.md b/README.md index 37144a29c..53eb47ce2 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # MinIO Quickstart Guide -[![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) +[![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) [![MinIO](https://raw.githubusercontent.com/minio/minio/master/.github/logo.svg?sanitize=true)](https://min.io) -MinIO is a High Performance Object Storage released under Apache License v2.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads. +MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads. This README provides quickstart instructions on running MinIO on baremetal hardware, including Docker-based installations. For Kubernetes environments, use the [MinIO Kubernetes Operator](https://github.com/minio/operator/blob/master/README.md). @@ -309,4 +309,4 @@ mc admin update Please follow MinIO [Contributor's Guide](https://github.com/minio/minio/blob/master/CONTRIBUTING.md) # License -Use of MinIO is governed by the Apache 2.0 License found at [LICENSE](https://github.com/minio/minio/blob/master/LICENSE). +Use of MinIO is governed by the GNU AGPLv3 license that can be found in the [LICENSE](https://github.com/minio/minio/blob/master/LICENSE) file. diff --git a/README_zh_CN.md b/README_zh_CN.md deleted file mode 100644 index 2579c1502..000000000 --- a/README_zh_CN.md +++ /dev/null @@ -1,196 +0,0 @@ -# MinIO Quickstart Guide [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 - -MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 - -## Docker 容器 -### 稳定版 -``` -docker run -p 9000:9000 \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ - minio/minio server /data -``` - -### 尝鲜版 -``` -docker run -p 9000:9000 \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ - minio/minio:edge server /data -``` - -> 提示:除非你通过`-it`(TTY交互)参数启动容器,否则Docker将不会显示默认的密钥。一般情况下,并不推荐使用容器的默认密钥,更多Docker部署信息请访问 [这里](https://docs.min.io/docs/minio-docker-quickstart-guide) - -## macOS -### Homebrew(推荐) -使用 [Homebrew](http://brew.sh/)安装minio - -```sh -brew install minio/stable/minio -minio server /data -``` - -> 提示:如果你之前使用 `brew install minio`安装过minio, 可以用 `minio/stable/minio` 官方镜像进行重装. 由于golang 1.8的bug,homebrew版本不太稳定。 -```sh -brew uninstall minio -brew install minio/stable/minio -``` - -### 下载二进制文件 -| 操作系统 | CPU架构 | 地址 | -| ---------- | -------- | ------ | -| Apple macOS | 64-bit Intel | https://dl.min.io/server/minio/release/darwin-amd64/minio | -```sh -chmod 755 minio -./minio server /data -``` - -## GNU/Linux -### 下载二进制文件 -| 操作系统 | CPU架构 | 地址 | -| ---------- | -------- | ------ | -| GNU/Linux | 64-bit Intel | https://dl.min.io/server/minio/release/linux-amd64/minio | -```sh -wget https://dl.min.io/server/minio/release/linux-amd64/minio -chmod +x minio -./minio server /data -``` - -| 操作系统 | CPU架构 | 地址 | -| ---------- | -------- | ------ | -| GNU/Linux | ppc64le | https://dl.min.io/server/minio/release/linux-ppc64le/minio | -```sh -wget https://dl.min.io/server/minio/release/linux-ppc64le/minio -chmod +x minio -./minio server /data -``` - -## 微软Windows系统 -### 下载二进制文件 -| 操作系统 | CPU架构 | 地址 | -| ---------- | -------- | ------ | -| 微软Windows系统 | 64位 | https://dl.min.io/server/minio/release/windows-amd64/minio.exe | -```sh -minio.exe server D:\Photos -``` - -## FreeBSD -### Port -使用 [pkg](https://github.com/freebsd/pkg)进行安装,MinIO官方并没有提供FreeBSD二进制文件, 它由FreeBSD上游维护,点击 [这里](https://www.freshports.org/www/minio)查看。 - -```sh -pkg install minio -sysrc minio_enable=yes -sysrc minio_disks=/home/user/Photos -service minio start -``` - -## 使用源码安装 - -采用源码安装仅供开发人员和高级用户使用,如果你还没有Golang环境, 请参考 [How to install Golang](https://golang.org/doc/install)。最低需要Golang版本为 [go1.16](https://golang.org/dl/#stable) - -```sh -GO111MODULE=on go get github.com/minio/minio -``` - -## 为防火墙设置允许访问的端口 - -默认情况下,MinIO 使用端口9000来侦听传入的连接。如果你的平台默认阻止了该端口,则需要启用对该端口的访问。 - -### ufw - -对于启用了ufw的主机(基于Debian的发行版), 你可以通过`ufw`命令允许指定端口上的所有流量连接. 通过如下命令允许访问端口9000 - -```sh -ufw allow 9000 -``` - -如下命令允许端口9000-9010上的所有传入流量。 - -```sh -ufw allow 9000:9010/tcp -``` - -### firewall-cmd - -对于启用了firewall-cmd的主机(CentOS), 你可以通过`firewall-cmd`命令允许指定端口上的所有流量连接。 通过如下命令允许访问端口9000 - -```sh -firewall-cmd --get-active-zones -``` - -这个命令获取当前正在使用的区域。 现在,就可以为以上返回的区域应用端口规则了。 假如返回的区域是 `public`, 使用如下命令 - -```sh -firewall-cmd --zone=public --add-port=9000/tcp --permanent -``` - -这里的`permanent`参数表示持久化存储规则,可用于防火墙启动、重启和重新加载。 最后,需要防火墙重新加载,让我们刚刚的修改生效。 - -```sh -firewall-cmd --reload -``` - -### iptables - -对于启用了iptables的主机(RHEL, CentOS, etc), 你可以通过`iptables`命令允许指定端口上的所有流量连接。 通过如下命令允许访问端口9000 - -```sh -iptables -A INPUT -p tcp --dport 9000 -j ACCEPT -service iptables restart -``` - -如下命令允许端口9000-9010上的所有传入流量。 - -```sh -iptables -A INPUT -p tcp --dport 9000:9010 -j ACCEPT -service iptables restart -``` - -## 使用MinIO浏览器进行验证 -MinIO Server带有一个嵌入的Web对象浏览器,安装后使用浏览器访问[http://127.0.0.1:9000](http://127.0.0.1:9000),如果可以访问,则表示minio已经安装成功。 - -![Screenshot](https://github.com/minio/minio/blob/master/docs/screenshots/minio-browser.png?raw=true) - -## 使用MinIO客户端 `mc`进行验证 -`mc` 提供了一些UNIX常用命令的替代品,像ls, cat, cp, mirror, diff这些。 它支持文件系统和亚马逊S3云存储服务。 更多信息请参考 [mc快速入门](https://docs.min.io/docs/minio-client-quickstart-guide) 。 - -## 已经存在的数据 -当在单块磁盘上部署MinIO server,MinIO server允许客户端访问数据目录下已经存在的数据。比如,如果MinIO使用`minio server /mnt/data`启动,那么所有已经在`/mnt/data`目录下的数据都可以被客户端访问到。 - -上述描述对所有网关后端同样有效。 - -## 升级 MinIO -MinIO 服务端支持滚动升级, 也就是说你可以一次更新分布式集群中的一个MinIO实例。 这样可以在不停机的情况下进行升级。可以通过将二进制文件替换为最新版本并以滚动方式重新启动所有服务器来手动完成升级。但是, 我们建议所有用户从客户端使用 [`mc admin update`](https://docs.min.io/docs/minio-admin-complete-guide.html#update) 命令升级。 这将同时更新集群中的所有节点并重新启动它们, 如下命令所示: - -``` -mc admin update -``` - -> 注意: 有些发行版可能不允许滚动升级,这通常在发行说明中提到,所以建议在升级之前阅读发行说明。在这种情况下,建议使用`mc admin update`升级机制来一次升级所有服务器。 - -### MinIO升级时要记住的重要事项 - -- `mc admin update` 命令仅当运行MinIO的用户对二进制文件所在的父目录具有写权限时才工作, 比如当前二进制文件位于`/usr/local/bin/minio`, 你需要具备`/usr/local/bin`目录的写权限. -- `mc admin update` 命令同时更新并重新启动所有服务器,应用程序将在升级后重试并继续各自的操作。 -- `mc admin update` 命令在 kubernetes/container 环境下是不能用的, 容器环境提供了它自己的更新机制来更新。 -- 对于联盟部署模式,应分别针对每个群集运行`mc admin update`。 在成功更新所有群集之前,不要将`mc`更新为任何新版本。 -- 如果将`kes`用作MinIO的KMS,只需替换二进制文件并重新启动`kes`,可以在 [这里](https://github.com/minio/kes/wiki) 找到有关`kes`的更多信息。 -- 如果将Vault作为MinIO的KMS,请确保已遵循如下Vault升级过程的概述:https://www.vaultproject.io/docs/upgrading/index.html -- 如果将MinIO与etcd配合使用, 请确保已遵循如下etcd升级过程的概述: https://github.com/etcd-io/etcd/blob/master/Documentation/upgrades/upgrading-etcd.md - -## 了解更多 -- [MinIO纠删码入门](https://docs.min.io/docs/minio-erasure-code-quickstart-guide) -- [`mc`快速入门](https://docs.min.io/docs/minio-client-quickstart-guide) -- [使用 `aws-cli`](https://docs.min.io/docs/aws-cli-with-minio) -- [使用 `s3cmd`](https://docs.min.io/docs/s3cmd-with-minio) -- [使用 `minio-go` SDK](https://docs.min.io/docs/golang-client-quickstart-guide) -- [MinIO文档](https://docs.min.io) - -## 如何参与到MinIO项目 -请参考 [贡献者指南](https://github.com/minio/minio/blob/master/CONTRIBUTING.md)。欢迎各位中国程序员加入到MinIO项目中。 - -## 授权许可 -MinIO的使用受 Apache 2.0 License 约束,你可以在 [LICENSE](./LICENSE) 查看许可。 diff --git a/browser/LICENSE b/browser/LICENSE new file mode 100644 index 000000000..be3f7b28e --- /dev/null +++ b/browser/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/browser/README.md b/browser/README.md index d65211b76..469b44089 100644 --- a/browser/README.md +++ b/browser/README.md @@ -1,6 +1,6 @@ # MinIO File Browser -``MinIO Browser`` provides minimal set of UI to manage buckets and objects on ``minio`` server. ``MinIO Browser`` is written in javascript and released under [Apache 2.0 License](./LICENSE). +``MinIO Browser`` provides minimal set of UI to manage buckets and objects on ``minio`` server. ``MinIO Browser`` is written in javascript and released under [GNU Affero General Public License 3.0](./LICENSE). ## Installation diff --git a/buildscripts/gen-ldflags.go b/buildscripts/gen-ldflags.go index 574a2473d..95e4466e2 100644 --- a/buildscripts/gen-ldflags.go +++ b/buildscripts/gen-ldflags.go @@ -1,20 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2015 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/cmd/acl-handlers.go b/cmd/acl-handlers.go index 8eb458000..69f327501 100644 --- a/cmd/acl-handlers.go +++ b/cmd/acl-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/admin-bucket-handlers.go b/cmd/admin-bucket-handlers.go index fff3d0a57..8d30c1407 100644 --- a/cmd/admin-bucket-handlers.go +++ b/cmd/admin-bucket-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/admin-handlers-config-kv.go b/cmd/admin-handlers-config-kv.go index 9e3a106d4..0bf5d419e 100644 --- a/cmd/admin-handlers-config-kv.go +++ b/cmd/admin-handlers-config-kv.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/admin-handlers-users.go b/cmd/admin-handlers-users.go index 78a5c1545..99644cb69 100644 --- a/cmd/admin-handlers-users.go +++ b/cmd/admin-handlers-users.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/admin-handlers.go b/cmd/admin-handlers.go index 3fe5a37a1..37df4d45b 100644 --- a/cmd/admin-handlers.go +++ b/cmd/admin-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd @@ -42,7 +43,6 @@ import ( "github.com/minio/minio/cmd/logger" "github.com/minio/minio/cmd/logger/message/log" "github.com/minio/minio/pkg/auth" - "github.com/minio/minio/pkg/bandwidth" "github.com/minio/minio/pkg/dsync" "github.com/minio/minio/pkg/handlers" iampolicy "github.com/minio/minio/pkg/iam/policy" @@ -1520,7 +1520,7 @@ func (a adminAPIHandlers) BandwidthMonitorHandler(w http.ResponseWriter, r *http rnd := rand.New(rand.NewSource(time.Now().UnixNano())) setEventStreamHeaders(w) - reportCh := make(chan bandwidth.Report) + reportCh := make(chan madmin.BucketBandwidthReport) keepAliveTicker := time.NewTicker(500 * time.Millisecond) defer keepAliveTicker.Stop() bucketsRequestedString := r.URL.Query().Get("buckets") diff --git a/cmd/admin-handlers_test.go b/cmd/admin-handlers_test.go index 3ef257f45..ec1363aef 100644 --- a/cmd/admin-handlers_test.go +++ b/cmd/admin-handlers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/admin-heal-ops.go b/cmd/admin-heal-ops.go index faaf09946..99a3900a7 100644 --- a/cmd/admin-heal-ops.go +++ b/cmd/admin-heal-ops.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/admin-router.go b/cmd/admin-router.go index f472e74a5..f595fdff8 100644 --- a/cmd/admin-router.go +++ b/cmd/admin-router.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018, 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/admin-server-info.go b/cmd/admin-server-info.go index 294e2fc51..aaefbf7f7 100644 --- a/cmd/admin-server-info.go +++ b/cmd/admin-server-info.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-datatypes.go b/cmd/api-datatypes.go index 60e32f913..2a03f7137 100644 --- a/cmd/api-datatypes.go +++ b/cmd/api-datatypes.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-errors.go b/cmd/api-errors.go index e9ef54085..5d3539a91 100644 --- a/cmd/api-errors.go +++ b/cmd/api-errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-errors_test.go b/cmd/api-errors_test.go index e1134f922..018331aa2 100644 --- a/cmd/api-errors_test.go +++ b/cmd/api-errors_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-headers.go b/cmd/api-headers.go index aa5213e4e..128c34075 100644 --- a/cmd/api-headers.go +++ b/cmd/api-headers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-headers_test.go b/cmd/api-headers_test.go index 26ca9198c..e137cb821 100644 --- a/cmd/api-headers_test.go +++ b/cmd/api-headers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-resources.go b/cmd/api-resources.go index 6313f87aa..56249cc7e 100644 --- a/cmd/api-resources.go +++ b/cmd/api-resources.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-resources_test.go b/cmd/api-resources_test.go index a21026658..a9aac0b65 100644 --- a/cmd/api-resources_test.go +++ b/cmd/api-resources_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-response.go b/cmd/api-response.go index 12f318048..1f0f3c24f 100644 --- a/cmd/api-response.go +++ b/cmd/api-response.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-response_test.go b/cmd/api-response_test.go index b113887d2..6736e5259 100644 --- a/cmd/api-response_test.go +++ b/cmd/api-response_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-router.go b/cmd/api-router.go index 19790e32b..af22ed78b 100644 --- a/cmd/api-router.go +++ b/cmd/api-router.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-utils.go b/cmd/api-utils.go index 0e370b1be..fa277b9fc 100644 --- a/cmd/api-utils.go +++ b/cmd/api-utils.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/api-utils_test.go b/cmd/api-utils_test.go index 0ef817964..9608b282a 100644 --- a/cmd/api-utils_test.go +++ b/cmd/api-utils_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/apierrorcode_string.go b/cmd/apierrorcode_string.go index 3db466687..b6dddfbd7 100644 --- a/cmd/apierrorcode_string.go +++ b/cmd/apierrorcode_string.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Code generated by "stringer -type=APIErrorCode -trimprefix=Err api-errors.go"; DO NOT EDIT. package cmd diff --git a/cmd/auth-handler.go b/cmd/auth-handler.go index aff3ce613..e9721d79f 100644 --- a/cmd/auth-handler.go +++ b/cmd/auth-handler.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/auth-handler_test.go b/cmd/auth-handler_test.go index fe735d306..84357751b 100644 --- a/cmd/auth-handler_test.go +++ b/cmd/auth-handler_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/background-heal-ops.go b/cmd/background-heal-ops.go index 08697f7de..dad97ec62 100644 --- a/cmd/background-heal-ops.go +++ b/cmd/background-heal-ops.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/background-newdisks-heal-ops.go b/cmd/background-newdisks-heal-ops.go index 48f89944f..6535cfa58 100644 --- a/cmd/background-newdisks-heal-ops.go +++ b/cmd/background-newdisks-heal-ops.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/background-newdisks-heal-ops_gen.go b/cmd/background-newdisks-heal-ops_gen.go index 13ca63c32..be759337a 100644 --- a/cmd/background-newdisks-heal-ops_gen.go +++ b/cmd/background-newdisks-heal-ops_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/background-newdisks-heal-ops_gen_test.go b/cmd/background-newdisks-heal-ops_gen_test.go index 177aa91ab..6129922b8 100644 --- a/cmd/background-newdisks-heal-ops_gen_test.go +++ b/cmd/background-newdisks-heal-ops_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/benchmark-utils_test.go b/cmd/benchmark-utils_test.go index fe3108142..b4d40ea2f 100644 --- a/cmd/benchmark-utils_test.go +++ b/cmd/benchmark-utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bitrot-streaming.go b/cmd/bitrot-streaming.go index 86061d405..e5376bc2e 100644 --- a/cmd/bitrot-streaming.go +++ b/cmd/bitrot-streaming.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bitrot-whole.go b/cmd/bitrot-whole.go index e8907e2de..a4c6c737a 100644 --- a/cmd/bitrot-whole.go +++ b/cmd/bitrot-whole.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bitrot.go b/cmd/bitrot.go index 513eefd45..c0c0c09eb 100644 --- a/cmd/bitrot.go +++ b/cmd/bitrot.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bitrot_test.go b/cmd/bitrot_test.go index 54aa13508..6762bcc75 100644 --- a/cmd/bitrot_test.go +++ b/cmd/bitrot_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bootstrap-peer-server.go b/cmd/bootstrap-peer-server.go index 232197222..dd05e6b22 100644 --- a/cmd/bootstrap-peer-server.go +++ b/cmd/bootstrap-peer-server.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-encryption-handlers.go b/cmd/bucket-encryption-handlers.go index b81f9537a..5f7fad500 100644 --- a/cmd/bucket-encryption-handlers.go +++ b/cmd/bucket-encryption-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-encryption.go b/cmd/bucket-encryption.go index 5c1040b18..bd71c2104 100644 --- a/cmd/bucket-encryption.go +++ b/cmd/bucket-encryption.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-encryption_test.go b/cmd/bucket-encryption_test.go index 25548caf3..867a879be 100644 --- a/cmd/bucket-encryption_test.go +++ b/cmd/bucket-encryption_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-handlers.go b/cmd/bucket-handlers.go index ed02ae39f..62389802d 100644 --- a/cmd/bucket-handlers.go +++ b/cmd/bucket-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-handlers_test.go b/cmd/bucket-handlers_test.go index 83b1458cb..bdd3fd9fe 100644 --- a/cmd/bucket-handlers_test.go +++ b/cmd/bucket-handlers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-lifecycle-handlers.go b/cmd/bucket-lifecycle-handlers.go index d221dcb6e..ef7f78ef3 100644 --- a/cmd/bucket-lifecycle-handlers.go +++ b/cmd/bucket-lifecycle-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-lifecycle-handlers_test.go b/cmd/bucket-lifecycle-handlers_test.go index cd8857f26..723902d62 100644 --- a/cmd/bucket-lifecycle-handlers_test.go +++ b/cmd/bucket-lifecycle-handlers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-lifecycle.go b/cmd/bucket-lifecycle.go index 7636b18b4..0ca9ddad3 100644 --- a/cmd/bucket-lifecycle.go +++ b/cmd/bucket-lifecycle.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-listobjects-handlers.go b/cmd/bucket-listobjects-handlers.go index 80cd57d1b..f7b69bdff 100644 --- a/cmd/bucket-listobjects-handlers.go +++ b/cmd/bucket-listobjects-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-metadata-sys.go b/cmd/bucket-metadata-sys.go index 42d001099..0884d35e6 100644 --- a/cmd/bucket-metadata-sys.go +++ b/cmd/bucket-metadata-sys.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-metadata.go b/cmd/bucket-metadata.go index f68e423df..c1ad6e034 100644 --- a/cmd/bucket-metadata.go +++ b/cmd/bucket-metadata.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-metadata_gen.go b/cmd/bucket-metadata_gen.go index fd869aa18..94f3d056e 100644 --- a/cmd/bucket-metadata_gen.go +++ b/cmd/bucket-metadata_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/bucket-metadata_gen_test.go b/cmd/bucket-metadata_gen_test.go index 066a68d16..fe15f2953 100644 --- a/cmd/bucket-metadata_gen_test.go +++ b/cmd/bucket-metadata_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/bucket-notification-handlers.go b/cmd/bucket-notification-handlers.go index 682e194de..e72703cf7 100644 --- a/cmd/bucket-notification-handlers.go +++ b/cmd/bucket-notification-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-object-lock.go b/cmd/bucket-object-lock.go index 07c96fef4..0bac18aa5 100644 --- a/cmd/bucket-object-lock.go +++ b/cmd/bucket-object-lock.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-policy-handlers.go b/cmd/bucket-policy-handlers.go index 841e7f20f..20bc34d8b 100644 --- a/cmd/bucket-policy-handlers.go +++ b/cmd/bucket-policy-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-policy-handlers_test.go b/cmd/bucket-policy-handlers_test.go index 428ae4576..7716477a7 100644 --- a/cmd/bucket-policy-handlers_test.go +++ b/cmd/bucket-policy-handlers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-policy.go b/cmd/bucket-policy.go index fe80bbca9..5134c5211 100644 --- a/cmd/bucket-policy.go +++ b/cmd/bucket-policy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018,2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-quota.go b/cmd/bucket-quota.go index b281d7553..d6f19cd22 100644 --- a/cmd/bucket-quota.go +++ b/cmd/bucket-quota.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-replication-stats.go b/cmd/bucket-replication-stats.go index 32dc3a977..255173e86 100644 --- a/cmd/bucket-replication-stats.go +++ b/cmd/bucket-replication-stats.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-replication.go b/cmd/bucket-replication.go index df501a413..63b77bada 100644 --- a/cmd/bucket-replication.go +++ b/cmd/bucket-replication.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-stats.go b/cmd/bucket-stats.go index aba8921d7..ee069589a 100644 --- a/cmd/bucket-stats.go +++ b/cmd/bucket-stats.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-stats_gen.go b/cmd/bucket-stats_gen.go index 278798104..c152233ea 100644 --- a/cmd/bucket-stats_gen.go +++ b/cmd/bucket-stats_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/bucket-stats_gen_test.go b/cmd/bucket-stats_gen_test.go index 6c435d5ec..054931120 100644 --- a/cmd/bucket-stats_gen_test.go +++ b/cmd/bucket-stats_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/bucket-targets.go b/cmd/bucket-targets.go index 551ca66de..d3e7cda78 100644 --- a/cmd/bucket-targets.go +++ b/cmd/bucket-targets.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-versioning-handler.go b/cmd/bucket-versioning-handler.go index 50296e619..c1ca8e449 100644 --- a/cmd/bucket-versioning-handler.go +++ b/cmd/bucket-versioning-handler.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/bucket-versioning.go b/cmd/bucket-versioning.go index fca5af0b7..bc819e362 100644 --- a/cmd/bucket-versioning.go +++ b/cmd/bucket-versioning.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/build-constants.go b/cmd/build-constants.go index f028a1089..31a1c71dc 100644 --- a/cmd/build-constants.go +++ b/cmd/build-constants.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/common-main.go b/cmd/common-main.go index e41d0dae0..be09339be 100644 --- a/cmd/common-main.go +++ b/cmd/common-main.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-common.go b/cmd/config-common.go index 65e437946..6929e2f7d 100644 --- a/cmd/config-common.go +++ b/cmd/config-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-current.go b/cmd/config-current.go index 92bbb01b8..6cf7f34b0 100644 --- a/cmd/config-current.go +++ b/cmd/config-current.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-current_test.go b/cmd/config-current_test.go index c77a744bd..3fd9a7f40 100644 --- a/cmd/config-current_test.go +++ b/cmd/config-current_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-dir.go b/cmd/config-dir.go index 7f8426e8c..df3ab9d13 100644 --- a/cmd/config-dir.go +++ b/cmd/config-dir.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-encrypted.go b/cmd/config-encrypted.go index 5cb64d070..b57902b66 100644 --- a/cmd/config-encrypted.go +++ b/cmd/config-encrypted.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-encrypted_test.go b/cmd/config-encrypted_test.go index 860e16822..d8155e297 100644 --- a/cmd/config-encrypted_test.go +++ b/cmd/config-encrypted_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-migrate.go b/cmd/config-migrate.go index dcc22fc11..b265fa920 100644 --- a/cmd/config-migrate.go +++ b/cmd/config-migrate.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-migrate_test.go b/cmd/config-migrate_test.go index cc5da0030..badf5263f 100644 --- a/cmd/config-migrate_test.go +++ b/cmd/config-migrate_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config-versions.go b/cmd/config-versions.go index 065d01e4f..5620cc1bd 100644 --- a/cmd/config-versions.go +++ b/cmd/config-versions.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config.go b/cmd/config.go index a3ffdda9e..32caac214 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/config/api/api.go b/cmd/config/api/api.go index 3e1bb1193..4b1f5225e 100644 --- a/cmd/config/api/api.go +++ b/cmd/config/api/api.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package api diff --git a/cmd/config/api/help.go b/cmd/config/api/help.go index bb39d27c2..4b4196a76 100644 --- a/cmd/config/api/help.go +++ b/cmd/config/api/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package api diff --git a/cmd/config/bool-flag.go b/cmd/config/bool-flag.go index 245452729..51b3e408a 100644 --- a/cmd/config/bool-flag.go +++ b/cmd/config/bool-flag.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/bool-flag_test.go b/cmd/config/bool-flag_test.go index 331f1022d..db99aff93 100644 --- a/cmd/config/bool-flag_test.go +++ b/cmd/config/bool-flag_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/cache/config.go b/cmd/config/cache/config.go index 90c504486..f170423b8 100644 --- a/cmd/config/cache/config.go +++ b/cmd/config/cache/config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cache diff --git a/cmd/config/cache/config_test.go b/cmd/config/cache/config_test.go index b952def8b..04144b307 100644 --- a/cmd/config/cache/config_test.go +++ b/cmd/config/cache/config_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cache diff --git a/cmd/config/cache/help.go b/cmd/config/cache/help.go index bc196ef4d..d16cec476 100644 --- a/cmd/config/cache/help.go +++ b/cmd/config/cache/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cache diff --git a/cmd/config/cache/legacy.go b/cmd/config/cache/legacy.go index 938850c43..4d9166356 100644 --- a/cmd/config/cache/legacy.go +++ b/cmd/config/cache/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cache diff --git a/cmd/config/cache/lookup.go b/cmd/config/cache/lookup.go index f6e1e8830..bc27fc254 100644 --- a/cmd/config/cache/lookup.go +++ b/cmd/config/cache/lookup.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cache diff --git a/cmd/config/certs.go b/cmd/config/certs.go index 3944f63c7..2915309dd 100644 --- a/cmd/config/certs.go +++ b/cmd/config/certs.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/certs_test.go b/cmd/config/certs_test.go index a65d7dd19..be1fe4c25 100644 --- a/cmd/config/certs_test.go +++ b/cmd/config/certs_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/certsinfo.go b/cmd/config/certsinfo.go index 0e013f472..2bb53de49 100644 --- a/cmd/config/certsinfo.go +++ b/cmd/config/certsinfo.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/compress/compress.go b/cmd/config/compress/compress.go index c251f8ca1..7e39fb24b 100644 --- a/cmd/config/compress/compress.go +++ b/cmd/config/compress/compress.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package compress diff --git a/cmd/config/compress/compress_test.go b/cmd/config/compress/compress_test.go index a620755d7..124d182db 100644 --- a/cmd/config/compress/compress_test.go +++ b/cmd/config/compress/compress_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package compress diff --git a/cmd/config/compress/help.go b/cmd/config/compress/help.go index b292cd6bc..2e2af6a0e 100644 --- a/cmd/config/compress/help.go +++ b/cmd/config/compress/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package compress diff --git a/cmd/config/compress/legacy.go b/cmd/config/compress/legacy.go index 379e8f8e0..352ae7a88 100644 --- a/cmd/config/compress/legacy.go +++ b/cmd/config/compress/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package compress diff --git a/cmd/config/config.go b/cmd/config/config.go index d72dd29d5..7783ff8a5 100644 --- a/cmd/config/config.go +++ b/cmd/config/config.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/config_test.go b/cmd/config/config_test.go index c88619095..7114d4091 100644 --- a/cmd/config/config_test.go +++ b/cmd/config/config_test.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/constants.go b/cmd/config/constants.go index d76c8d0d8..deab78c03 100644 --- a/cmd/config/constants.go +++ b/cmd/config/constants.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/crypto.go b/cmd/config/crypto.go index 9087ecfc6..4696f0c1c 100644 --- a/cmd/config/crypto.go +++ b/cmd/config/crypto.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/crypto_test.go b/cmd/config/crypto_test.go index 4bb788de7..85b4f5ab7 100644 --- a/cmd/config/crypto_test.go +++ b/cmd/config/crypto_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/dns/etcd_dns.go b/cmd/config/dns/etcd_dns.go index ccbe288d7..11e868cbf 100644 --- a/cmd/config/dns/etcd_dns.go +++ b/cmd/config/dns/etcd_dns.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018,2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dns diff --git a/cmd/config/dns/operator_dns.go b/cmd/config/dns/operator_dns.go index 1a0c46854..a0ae71313 100644 --- a/cmd/config/dns/operator_dns.go +++ b/cmd/config/dns/operator_dns.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dns diff --git a/cmd/config/dns/store.go b/cmd/config/dns/store.go index 1195f4f27..831b45394 100644 --- a/cmd/config/dns/store.go +++ b/cmd/config/dns/store.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dns diff --git a/cmd/config/dns/types.go b/cmd/config/dns/types.go index 8a8fba59e..44d37854d 100644 --- a/cmd/config/dns/types.go +++ b/cmd/config/dns/types.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dns diff --git a/cmd/config/errors-utils.go b/cmd/config/errors-utils.go index 5222f6446..836b179d1 100644 --- a/cmd/config/errors-utils.go +++ b/cmd/config/errors-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/errors.go b/cmd/config/errors.go index 45a5957ee..5b4de838d 100644 --- a/cmd/config/errors.go +++ b/cmd/config/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/etcd/etcd.go b/cmd/config/etcd/etcd.go index 5f2b3010e..2c3d2801a 100644 --- a/cmd/config/etcd/etcd.go +++ b/cmd/config/etcd/etcd.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package etcd diff --git a/cmd/config/etcd/etcd_test.go b/cmd/config/etcd/etcd_test.go index 9b6805246..4470888c2 100644 --- a/cmd/config/etcd/etcd_test.go +++ b/cmd/config/etcd/etcd_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package etcd diff --git a/cmd/config/etcd/help.go b/cmd/config/etcd/help.go index 8009709d1..1264f7f54 100644 --- a/cmd/config/etcd/help.go +++ b/cmd/config/etcd/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package etcd diff --git a/cmd/config/heal/heal.go b/cmd/config/heal/heal.go index 6b14f2905..f18a218f3 100644 --- a/cmd/config/heal/heal.go +++ b/cmd/config/heal/heal.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package heal diff --git a/cmd/config/help.go b/cmd/config/help.go index f2292b9f2..e98fb62c5 100644 --- a/cmd/config/help.go +++ b/cmd/config/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/identity/ldap/config.go b/cmd/config/identity/ldap/config.go index 258593375..f678a2ae0 100644 --- a/cmd/config/identity/ldap/config.go +++ b/cmd/config/identity/ldap/config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ldap diff --git a/cmd/config/identity/ldap/help.go b/cmd/config/identity/ldap/help.go index 1b8bde279..b22486841 100644 --- a/cmd/config/identity/ldap/help.go +++ b/cmd/config/identity/ldap/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ldap diff --git a/cmd/config/identity/ldap/legacy.go b/cmd/config/identity/ldap/legacy.go index 52362d93f..508f65124 100644 --- a/cmd/config/identity/ldap/legacy.go +++ b/cmd/config/identity/ldap/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ldap diff --git a/cmd/config/identity/openid/ecdsa-sha3.go b/cmd/config/identity/openid/ecdsa-sha3.go index fcbafdd94..c2475e718 100644 --- a/cmd/config/identity/openid/ecdsa-sha3.go +++ b/cmd/config/identity/openid/ecdsa-sha3.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2020 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // +build !fips diff --git a/cmd/config/identity/openid/help.go b/cmd/config/identity/openid/help.go index 3a33a2839..1749c6f2c 100644 --- a/cmd/config/identity/openid/help.go +++ b/cmd/config/identity/openid/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/identity/openid/jwks.go b/cmd/config/identity/openid/jwks.go index 3f770b998..025850ddc 100644 --- a/cmd/config/identity/openid/jwks.go +++ b/cmd/config/identity/openid/jwks.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/identity/openid/jwks_test.go b/cmd/config/identity/openid/jwks_test.go index 97502e600..33e569343 100644 --- a/cmd/config/identity/openid/jwks_test.go +++ b/cmd/config/identity/openid/jwks_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/identity/openid/jwt.go b/cmd/config/identity/openid/jwt.go index 560595911..ccf50d52e 100644 --- a/cmd/config/identity/openid/jwt.go +++ b/cmd/config/identity/openid/jwt.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/identity/openid/jwt_test.go b/cmd/config/identity/openid/jwt_test.go index 2af1b3ebd..30b00c59f 100644 --- a/cmd/config/identity/openid/jwt_test.go +++ b/cmd/config/identity/openid/jwt_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/identity/openid/legacy.go b/cmd/config/identity/openid/legacy.go index de9adc949..629a40895 100644 --- a/cmd/config/identity/openid/legacy.go +++ b/cmd/config/identity/openid/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/identity/openid/rsa-sha3.go b/cmd/config/identity/openid/rsa-sha3.go index 293c41e1c..42af7ba58 100644 --- a/cmd/config/identity/openid/rsa-sha3.go +++ b/cmd/config/identity/openid/rsa-sha3.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2020 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // +build !fips diff --git a/cmd/config/identity/openid/validators.go b/cmd/config/identity/openid/validators.go index 2a0682c95..4725b49bf 100644 --- a/cmd/config/identity/openid/validators.go +++ b/cmd/config/identity/openid/validators.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/identity/openid/validators_test.go b/cmd/config/identity/openid/validators_test.go index 27a65d0b1..a3f671795 100644 --- a/cmd/config/identity/openid/validators_test.go +++ b/cmd/config/identity/openid/validators_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package openid diff --git a/cmd/config/legacy.go b/cmd/config/legacy.go index 347f255ff..c3e89c930 100644 --- a/cmd/config/legacy.go +++ b/cmd/config/legacy.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/logger.go b/cmd/config/logger.go index 096045c8d..13fa4e06b 100644 --- a/cmd/config/logger.go +++ b/cmd/config/logger.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package config diff --git a/cmd/config/notify/config.go b/cmd/config/notify/config.go index 1a923dc4c..29d20e295 100644 --- a/cmd/config/notify/config.go +++ b/cmd/config/notify/config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package notify diff --git a/cmd/config/notify/help.go b/cmd/config/notify/help.go index c2e56bb64..16ae2bac0 100644 --- a/cmd/config/notify/help.go +++ b/cmd/config/notify/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package notify diff --git a/cmd/config/notify/legacy.go b/cmd/config/notify/legacy.go index 89e6c095a..a686d8261 100644 --- a/cmd/config/notify/legacy.go +++ b/cmd/config/notify/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package notify diff --git a/cmd/config/notify/parse.go b/cmd/config/notify/parse.go index 88adbbf2c..fe8661906 100644 --- a/cmd/config/notify/parse.go +++ b/cmd/config/notify/parse.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package notify diff --git a/cmd/config/policy/opa/config.go b/cmd/config/policy/opa/config.go index 05745e2c7..e5a3cfaa7 100644 --- a/cmd/config/policy/opa/config.go +++ b/cmd/config/policy/opa/config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package opa diff --git a/cmd/config/policy/opa/help.go b/cmd/config/policy/opa/help.go index 20cba54f2..77b2fb2e8 100644 --- a/cmd/config/policy/opa/help.go +++ b/cmd/config/policy/opa/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019,2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package opa diff --git a/cmd/config/policy/opa/legacy.go b/cmd/config/policy/opa/legacy.go index 04ecb08a8..b01f21ff1 100644 --- a/cmd/config/policy/opa/legacy.go +++ b/cmd/config/policy/opa/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package opa diff --git a/cmd/config/scanner/scanner.go b/cmd/config/scanner/scanner.go index ae87d8402..6649f4bf9 100644 --- a/cmd/config/scanner/scanner.go +++ b/cmd/config/scanner/scanner.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020-2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package scanner diff --git a/cmd/config/storageclass/help.go b/cmd/config/storageclass/help.go index cd18c2605..7f2c66887 100644 --- a/cmd/config/storageclass/help.go +++ b/cmd/config/storageclass/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package storageclass diff --git a/cmd/config/storageclass/legacy.go b/cmd/config/storageclass/legacy.go index 8059bf5a1..1ac94d1e0 100644 --- a/cmd/config/storageclass/legacy.go +++ b/cmd/config/storageclass/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package storageclass diff --git a/cmd/config/storageclass/storage-class.go b/cmd/config/storageclass/storage-class.go index 7dc6ad5e4..180f390a2 100644 --- a/cmd/config/storageclass/storage-class.go +++ b/cmd/config/storageclass/storage-class.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package storageclass diff --git a/cmd/config/storageclass/storage-class_test.go b/cmd/config/storageclass/storage-class_test.go index f67c561ee..3b9e5a133 100644 --- a/cmd/config/storageclass/storage-class_test.go +++ b/cmd/config/storageclass/storage-class_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package storageclass diff --git a/cmd/consolelogger.go b/cmd/consolelogger.go index 1eca3b254..48cef46fb 100644 --- a/cmd/consolelogger.go +++ b/cmd/consolelogger.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/copy-part-range.go b/cmd/copy-part-range.go index 8c1f87d87..9aca607c9 100644 --- a/cmd/copy-part-range.go +++ b/cmd/copy-part-range.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/copy-part-range_test.go b/cmd/copy-part-range_test.go index 1566e75c9..afe8cd0ce 100644 --- a/cmd/copy-part-range_test.go +++ b/cmd/copy-part-range_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/crossdomain-xml-handler.go b/cmd/crossdomain-xml-handler.go index a6581036c..ddadb9809 100644 --- a/cmd/crossdomain-xml-handler.go +++ b/cmd/crossdomain-xml-handler.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/crossdomain-xml-handler_test.go b/cmd/crossdomain-xml-handler_test.go index 7bd53f4cb..51e047993 100644 --- a/cmd/crossdomain-xml-handler_test.go +++ b/cmd/crossdomain-xml-handler_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/crypto/config.go b/cmd/crypto/config.go index 1328c0edb..a1f30f0f2 100644 --- a/cmd/crypto/config.go +++ b/cmd/crypto/config.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/doc.go b/cmd/crypto/doc.go index 37cb069b3..e8f7b8a11 100644 --- a/cmd/crypto/doc.go +++ b/cmd/crypto/doc.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package crypto implements AWS S3 related cryptographic building blocks // for implementing Server-Side-Encryption (SSE-S3) and Server-Side-Encryption diff --git a/cmd/crypto/error.go b/cmd/crypto/error.go index 23976ae0e..0a6651840 100644 --- a/cmd/crypto/error.go +++ b/cmd/crypto/error.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/header.go b/cmd/crypto/header.go index 08acbf986..0ab384782 100644 --- a/cmd/crypto/header.go +++ b/cmd/crypto/header.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/header_test.go b/cmd/crypto/header_test.go index 0c7c73412..876a316f0 100644 --- a/cmd/crypto/header_test.go +++ b/cmd/crypto/header_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/help.go b/cmd/crypto/help.go index 4ceffbcbd..9fde078bd 100644 --- a/cmd/crypto/help.go +++ b/cmd/crypto/help.go @@ -1,17 +1,18 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/json.go b/cmd/crypto/json.go index 23878148d..0faf56bfe 100644 --- a/cmd/crypto/json.go +++ b/cmd/crypto/json.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2020 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/kes.go b/cmd/crypto/kes.go index 5c805b253..fda46dc15 100644 --- a/cmd/crypto/kes.go +++ b/cmd/crypto/kes.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/key.go b/cmd/crypto/key.go index 0adf36f25..c7bbec6d0 100644 --- a/cmd/crypto/key.go +++ b/cmd/crypto/key.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/key_test.go b/cmd/crypto/key_test.go index 2226b7161..18578594f 100644 --- a/cmd/crypto/key_test.go +++ b/cmd/crypto/key_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/kms.go b/cmd/crypto/kms.go index e6b1aae01..d78fe9a84 100644 --- a/cmd/crypto/kms.go +++ b/cmd/crypto/kms.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/metadata.go b/cmd/crypto/metadata.go index 9ef8fba53..d34a0a04d 100644 --- a/cmd/crypto/metadata.go +++ b/cmd/crypto/metadata.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/metadata_test.go b/cmd/crypto/metadata_test.go index d3dcb729d..ffec38039 100644 --- a/cmd/crypto/metadata_test.go +++ b/cmd/crypto/metadata_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/retry.go b/cmd/crypto/retry.go index 7d9711c74..c540932bc 100644 --- a/cmd/crypto/retry.go +++ b/cmd/crypto/retry.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2020 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/sse-c.go b/cmd/crypto/sse-c.go index 169e1f81a..ee1597578 100644 --- a/cmd/crypto/sse-c.go +++ b/cmd/crypto/sse-c.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019-2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/sse-kms.go b/cmd/crypto/sse-kms.go index abcea284c..da99c7618 100644 --- a/cmd/crypto/sse-kms.go +++ b/cmd/crypto/sse-kms.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019-2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/sse-s3.go b/cmd/crypto/sse-s3.go index 0617a76fe..45eede4f4 100644 --- a/cmd/crypto/sse-s3.go +++ b/cmd/crypto/sse-s3.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019-2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/sse.go b/cmd/crypto/sse.go index 14a9c73c2..0f7ecab5a 100644 --- a/cmd/crypto/sse.go +++ b/cmd/crypto/sse.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/crypto/sse_test.go b/cmd/crypto/sse_test.go index d6887ddf1..0ed6ac059 100644 --- a/cmd/crypto/sse_test.go +++ b/cmd/crypto/sse_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package crypto diff --git a/cmd/data-scanner.go b/cmd/data-scanner.go index 64b2840c2..74d3a07c5 100644 --- a/cmd/data-scanner.go +++ b/cmd/data-scanner.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/data-update-tracker.go b/cmd/data-update-tracker.go index e1fd06af3..0a6f213e3 100644 --- a/cmd/data-update-tracker.go +++ b/cmd/data-update-tracker.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/data-update-tracker_test.go b/cmd/data-update-tracker_test.go index 82bb74fd4..c5d79b6e7 100644 --- a/cmd/data-update-tracker_test.go +++ b/cmd/data-update-tracker_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/data-usage-cache.go b/cmd/data-usage-cache.go index 04dff0db3..fd0346269 100644 --- a/cmd/data-usage-cache.go +++ b/cmd/data-usage-cache.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/data-usage-cache_gen.go b/cmd/data-usage-cache_gen.go index 218d26153..8a14cde3f 100644 --- a/cmd/data-usage-cache_gen.go +++ b/cmd/data-usage-cache_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/data-usage-cache_gen_test.go b/cmd/data-usage-cache_gen_test.go index 635139b3d..77b29167b 100644 --- a/cmd/data-usage-cache_gen_test.go +++ b/cmd/data-usage-cache_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/data-usage.go b/cmd/data-usage.go index f145867a9..f86133e60 100644 --- a/cmd/data-usage.go +++ b/cmd/data-usage.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/data-usage_test.go b/cmd/data-usage_test.go index 4ca24e11b..c0e05d783 100644 --- a/cmd/data-usage_test.go +++ b/cmd/data-usage_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache-backend.go b/cmd/disk-cache-backend.go index e3e5d0e8e..129063e9a 100644 --- a/cmd/disk-cache-backend.go +++ b/cmd/disk-cache-backend.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache-check-support_other.go b/cmd/disk-cache-check-support_other.go index f28b09cc3..e1e3906b3 100644 --- a/cmd/disk-cache-check-support_other.go +++ b/cmd/disk-cache-check-support_other.go @@ -1,20 +1,21 @@ // +build !windows -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache-check-support_windows.go b/cmd/disk-cache-check-support_windows.go index bf8ac21c7..b76612d77 100644 --- a/cmd/disk-cache-check-support_windows.go +++ b/cmd/disk-cache-check-support_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache-stats.go b/cmd/disk-cache-stats.go index eae32889a..83bdb283e 100644 --- a/cmd/disk-cache-stats.go +++ b/cmd/disk-cache-stats.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019, 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache-utils.go b/cmd/disk-cache-utils.go index 50610a822..23286de3c 100644 --- a/cmd/disk-cache-utils.go +++ b/cmd/disk-cache-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache-utils_test.go b/cmd/disk-cache-utils_test.go index fab1f82be..e5643ef26 100644 --- a/cmd/disk-cache-utils_test.go +++ b/cmd/disk-cache-utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache.go b/cmd/disk-cache.go index 58681dbfc..578e52588 100644 --- a/cmd/disk-cache.go +++ b/cmd/disk-cache.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019,2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/disk-cache_test.go b/cmd/disk-cache_test.go index 161b4e395..102cd1cc9 100644 --- a/cmd/disk-cache_test.go +++ b/cmd/disk-cache_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018,2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/dummy-data-generator_test.go b/cmd/dummy-data-generator_test.go index 4fc02073d..857bbd55e 100644 --- a/cmd/dummy-data-generator_test.go +++ b/cmd/dummy-data-generator_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/dummy-handlers.go b/cmd/dummy-handlers.go index d99ef681c..4b30ce22e 100644 --- a/cmd/dummy-handlers.go +++ b/cmd/dummy-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018, 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/dynamic-timeouts.go b/cmd/dynamic-timeouts.go index becb3b879..4e16cea06 100644 --- a/cmd/dynamic-timeouts.go +++ b/cmd/dynamic-timeouts.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/dynamic-timeouts_test.go b/cmd/dynamic-timeouts_test.go index 229e2b445..1b4388e4c 100644 --- a/cmd/dynamic-timeouts_test.go +++ b/cmd/dynamic-timeouts_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/encryption-v1.go b/cmd/encryption-v1.go index e6af07d6b..04c709d99 100644 --- a/cmd/encryption-v1.go +++ b/cmd/encryption-v1.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/encryption-v1_test.go b/cmd/encryption-v1_test.go index edb3df230..3c93ce272 100644 --- a/cmd/encryption-v1_test.go +++ b/cmd/encryption-v1_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/endpoint-ellipses.go b/cmd/endpoint-ellipses.go index 8005c5456..5116afc23 100644 --- a/cmd/endpoint-ellipses.go +++ b/cmd/endpoint-ellipses.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/endpoint-ellipses_test.go b/cmd/endpoint-ellipses_test.go index 7c8674741..423c307bd 100644 --- a/cmd/endpoint-ellipses_test.go +++ b/cmd/endpoint-ellipses_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/endpoint.go b/cmd/endpoint.go index b7a877e5e..f73f1dd03 100644 --- a/cmd/endpoint.go +++ b/cmd/endpoint.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/endpoint_test.go b/cmd/endpoint_test.go index b5628a7fe..c9e23ae78 100644 --- a/cmd/endpoint_test.go +++ b/cmd/endpoint_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017,2018,2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-bucket.go b/cmd/erasure-bucket.go index 41a497720..fcf3fc11c 100644 --- a/cmd/erasure-bucket.go +++ b/cmd/erasure-bucket.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-coding.go b/cmd/erasure-coding.go index 92e75e2b4..d3fba3fa0 100644 --- a/cmd/erasure-coding.go +++ b/cmd/erasure-coding.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-common.go b/cmd/erasure-common.go index 895d651c0..ec169b49f 100644 --- a/cmd/erasure-common.go +++ b/cmd/erasure-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-common_test.go b/cmd/erasure-common_test.go index f88af2b28..e325ee283 100644 --- a/cmd/erasure-common_test.go +++ b/cmd/erasure-common_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-decode.go b/cmd/erasure-decode.go index 287fa291d..f92552a25 100644 --- a/cmd/erasure-decode.go +++ b/cmd/erasure-decode.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-decode_test.go b/cmd/erasure-decode_test.go index 4e4f1df81..37cec4330 100644 --- a/cmd/erasure-decode_test.go +++ b/cmd/erasure-decode_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-encode.go b/cmd/erasure-encode.go index d8f9cc65c..ede2a6237 100644 --- a/cmd/erasure-encode.go +++ b/cmd/erasure-encode.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-encode_test.go b/cmd/erasure-encode_test.go index cc542a128..eaa85dab1 100644 --- a/cmd/erasure-encode_test.go +++ b/cmd/erasure-encode_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-errors.go b/cmd/erasure-errors.go index e7b2d366e..9ee593a7c 100644 --- a/cmd/erasure-errors.go +++ b/cmd/erasure-errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-heal_test.go b/cmd/erasure-heal_test.go index 00bb3b5c5..1bb6aa506 100644 --- a/cmd/erasure-heal_test.go +++ b/cmd/erasure-heal_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-healing-common.go b/cmd/erasure-healing-common.go index e8be444b3..d7f95d3d9 100644 --- a/cmd/erasure-healing-common.go +++ b/cmd/erasure-healing-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-healing-common_test.go b/cmd/erasure-healing-common_test.go index 541c110de..1125976b9 100644 --- a/cmd/erasure-healing-common_test.go +++ b/cmd/erasure-healing-common_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-healing.go b/cmd/erasure-healing.go index ab7874c16..30bb157ac 100644 --- a/cmd/erasure-healing.go +++ b/cmd/erasure-healing.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-healing_test.go b/cmd/erasure-healing_test.go index c393def0d..372d94ca3 100644 --- a/cmd/erasure-healing_test.go +++ b/cmd/erasure-healing_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-lowlevel-heal.go b/cmd/erasure-lowlevel-heal.go index eedc05474..a1ab73968 100644 --- a/cmd/erasure-lowlevel-heal.go +++ b/cmd/erasure-lowlevel-heal.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-metadata-utils.go b/cmd/erasure-metadata-utils.go index 90f4a2770..bbeb5cc15 100644 --- a/cmd/erasure-metadata-utils.go +++ b/cmd/erasure-metadata-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-metadata-utils_test.go b/cmd/erasure-metadata-utils_test.go index c74b6f711..4d24b0673 100644 --- a/cmd/erasure-metadata-utils_test.go +++ b/cmd/erasure-metadata-utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-metadata.go b/cmd/erasure-metadata.go index c7bec4db1..3777f478c 100644 --- a/cmd/erasure-metadata.go +++ b/cmd/erasure-metadata.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-metadata_test.go b/cmd/erasure-metadata_test.go index b5bd79cb1..723cda29b 100644 --- a/cmd/erasure-metadata_test.go +++ b/cmd/erasure-metadata_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-multipart.go b/cmd/erasure-multipart.go index f78699012..a8b871add 100644 --- a/cmd/erasure-multipart.go +++ b/cmd/erasure-multipart.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-object.go b/cmd/erasure-object.go index b8c734113..d010394aa 100644 --- a/cmd/erasure-object.go +++ b/cmd/erasure-object.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-object_test.go b/cmd/erasure-object_test.go index 9faf96ffd..34484c195 100644 --- a/cmd/erasure-object_test.go +++ b/cmd/erasure-object_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-server-pool.go b/cmd/erasure-server-pool.go index db8363ff4..0d033860c 100644 --- a/cmd/erasure-server-pool.go +++ b/cmd/erasure-server-pool.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019,2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-sets.go b/cmd/erasure-sets.go index a7dc24b9a..14d2ec52d 100644 --- a/cmd/erasure-sets.go +++ b/cmd/erasure-sets.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-sets_test.go b/cmd/erasure-sets_test.go index 7cceb971b..cf151a235 100644 --- a/cmd/erasure-sets_test.go +++ b/cmd/erasure-sets_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure-utils.go b/cmd/erasure-utils.go index 569ea7821..1bd8eea97 100644 --- a/cmd/erasure-utils.go +++ b/cmd/erasure-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure.go b/cmd/erasure.go index 74c435602..f061d50eb 100644 --- a/cmd/erasure.go +++ b/cmd/erasure.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/erasure_test.go b/cmd/erasure_test.go index 9c1224bee..57199ae95 100644 --- a/cmd/erasure_test.go +++ b/cmd/erasure_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/etcd.go b/cmd/etcd.go index 3e9087c5c..f89144f8d 100644 --- a/cmd/etcd.go +++ b/cmd/etcd.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fallocate.go b/cmd/fallocate.go deleted file mode 100644 index 67046cae0..000000000 --- a/cmd/fallocate.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build !linux - -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cmd - -// Fallocate is not POSIX and not supported under Windows -// Always return successful -func Fallocate(fd int, offset int64, len int64) error { - return nil -} diff --git a/cmd/fallocate_linux.go b/cmd/fallocate_linux.go deleted file mode 100644 index 89ea8eecb..000000000 --- a/cmd/fallocate_linux.go +++ /dev/null @@ -1,35 +0,0 @@ -// +build linux - -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cmd - -import "syscall" - -// Fallocate uses the linux Fallocate syscall, which helps us to be -// sure that subsequent writes on a file just created will not fail, -// in addition, file allocation will be contigous on the disk -func Fallocate(fd int, offset int64, len int64) error { - // No need to attempt fallocate for 0 length. - if len == 0 { - return nil - } - // Don't extend size of file even if offset + len is - // greater than file size from . - fallocFLKeepSize := uint32(1) - return syscall.Fallocate(fd, fallocFLKeepSize, offset, len) -} diff --git a/cmd/fallocate_linux_test.go b/cmd/fallocate_linux_test.go deleted file mode 100644 index ee95f2130..000000000 --- a/cmd/fallocate_linux_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// +build linux - -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cmd - -import "testing" - -// Tests allocate. -func TestFallocate(t *testing.T) { - err := Fallocate(0, 0, 0) - if err != nil { - t.Fatal("Unexpected error in fallocate for length 0:", err) - } -} diff --git a/cmd/format-disk-cache.go b/cmd/format-disk-cache.go index 219cd677b..fb6c73c21 100644 --- a/cmd/format-disk-cache.go +++ b/cmd/format-disk-cache.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/format-disk-cache_test.go b/cmd/format-disk-cache_test.go index 9e64674e4..85115ea73 100644 --- a/cmd/format-disk-cache_test.go +++ b/cmd/format-disk-cache_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/format-erasure.go b/cmd/format-erasure.go index 7db8ac7a6..122dec663 100644 --- a/cmd/format-erasure.go +++ b/cmd/format-erasure.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/format-erasure_test.go b/cmd/format-erasure_test.go index c7d4f8413..63e18dab9 100644 --- a/cmd/format-erasure_test.go +++ b/cmd/format-erasure_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/format-fs.go b/cmd/format-fs.go index fd242dd4e..f0c603990 100644 --- a/cmd/format-fs.go +++ b/cmd/format-fs.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/format-fs_test.go b/cmd/format-fs_test.go index dc9f187d9..b6e7b0b4d 100644 --- a/cmd/format-fs_test.go +++ b/cmd/format-fs_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/format-meta.go b/cmd/format-meta.go index 8c42fd370..dd5584071 100644 --- a/cmd/format-meta.go +++ b/cmd/format-meta.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/format_string.go b/cmd/format_string.go index ce068152a..9ed918faa 100644 --- a/cmd/format_string.go +++ b/cmd/format_string.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Code generated by "stringer -type=format -trimprefix=format untar.go"; DO NOT EDIT. package cmd diff --git a/cmd/fs-tree-walk-pool.go b/cmd/fs-tree-walk-pool.go index a43086bfc..c85d57960 100644 --- a/cmd/fs-tree-walk-pool.go +++ b/cmd/fs-tree-walk-pool.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-tree-walk-pool_test.go b/cmd/fs-tree-walk-pool_test.go index 8d30861d1..3ff24cfb5 100644 --- a/cmd/fs-tree-walk-pool_test.go +++ b/cmd/fs-tree-walk-pool_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1-helpers.go b/cmd/fs-v1-helpers.go index 2adcb289b..bee9625e3 100644 --- a/cmd/fs-v1-helpers.go +++ b/cmd/fs-v1-helpers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd @@ -310,14 +311,6 @@ func fsCreateFile(ctx context.Context, filePath string, reader io.Reader, falloc } defer writer.Close() - // Fallocate only if the size is final object is known. - if fallocSize > 0 { - if err = fsFAllocate(int(writer.Fd()), 0, fallocSize); err != nil { - logger.LogIf(ctx, err) - return 0, err - } - } - bytesWritten, err := io.Copy(writer, reader) if err != nil { logger.LogIf(ctx, err) @@ -327,32 +320,6 @@ func fsCreateFile(ctx context.Context, filePath string, reader io.Reader, falloc return bytesWritten, nil } -// fsFAllocate is similar to Fallocate but provides a convenient -// wrapper to handle various operating system specific errors. -func fsFAllocate(fd int, offset int64, len int64) (err error) { - e := Fallocate(fd, offset, len) - if e != nil { - switch { - case isSysErrNoSpace(e): - err = errDiskFull - case isSysErrNoSys(e) || isSysErrOpNotSupported(e): - // Ignore errors when Fallocate is not supported in the current system - case isSysErrInvalidArg(e): - // Workaround for Windows Docker Engine 19.03.8. - // See https://github.com/minio/minio/issues/9726 - case isSysErrIO(e): - err = e - default: - // For errors: EBADF, EINTR, EINVAL, ENODEV, EPERM, ESPIPE and ETXTBSY - // Appending was failed anyway, returns unexpected error - err = errUnexpected - } - return err - } - - return nil -} - // Renames source path to destination path, fails if the destination path // parents are not already created. func fsSimpleRenameFile(ctx context.Context, sourcePath, destPath string) error { diff --git a/cmd/fs-v1-helpers_test.go b/cmd/fs-v1-helpers_test.go index b2f42978f..380b062bc 100644 --- a/cmd/fs-v1-helpers_test.go +++ b/cmd/fs-v1-helpers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1-metadata.go b/cmd/fs-v1-metadata.go index 708aa1d2b..a36c6dddf 100644 --- a/cmd/fs-v1-metadata.go +++ b/cmd/fs-v1-metadata.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1-metadata_test.go b/cmd/fs-v1-metadata_test.go index 71c9a2fa2..2003b67a4 100644 --- a/cmd/fs-v1-metadata_test.go +++ b/cmd/fs-v1-metadata_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1-multipart.go b/cmd/fs-v1-multipart.go index 7318fffef..00762dd5a 100644 --- a/cmd/fs-v1-multipart.go +++ b/cmd/fs-v1-multipart.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1-multipart_test.go b/cmd/fs-v1-multipart_test.go index eaaabd800..07c4201ae 100644 --- a/cmd/fs-v1-multipart_test.go +++ b/cmd/fs-v1-multipart_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1-rwpool.go b/cmd/fs-v1-rwpool.go index 0691828c8..0be225cdc 100644 --- a/cmd/fs-v1-rwpool.go +++ b/cmd/fs-v1-rwpool.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1-rwpool_test.go b/cmd/fs-v1-rwpool_test.go index 5788f6c72..f9ec49e3c 100644 --- a/cmd/fs-v1-rwpool_test.go +++ b/cmd/fs-v1-rwpool_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1.go b/cmd/fs-v1.go index ac8393bef..5a80b3975 100644 --- a/cmd/fs-v1.go +++ b/cmd/fs-v1.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/fs-v1_test.go b/cmd/fs-v1_test.go index ae55fb7ac..1891216e7 100644 --- a/cmd/fs-v1_test.go +++ b/cmd/fs-v1_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-common.go b/cmd/gateway-common.go index 19e506827..653c93bcd 100644 --- a/cmd/gateway-common.go +++ b/cmd/gateway-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-common_test.go b/cmd/gateway-common_test.go index 6bb14c7db..4e6b821cf 100644 --- a/cmd/gateway-common_test.go +++ b/cmd/gateway-common_test.go @@ -1,18 +1,20 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd import ( diff --git a/cmd/gateway-env.go b/cmd/gateway-env.go index 5337de4d5..02e964515 100644 --- a/cmd/gateway-env.go +++ b/cmd/gateway-env.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-interface.go b/cmd/gateway-interface.go index 21b81ff67..62debc91e 100644 --- a/cmd/gateway-interface.go +++ b/cmd/gateway-interface.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-main.go b/cmd/gateway-main.go index 477bd176a..01e828761 100644 --- a/cmd/gateway-main.go +++ b/cmd/gateway-main.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-main_test.go b/cmd/gateway-main_test.go index ddef8f744..cf524aab5 100644 --- a/cmd/gateway-main_test.go +++ b/cmd/gateway-main_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-metrics.go b/cmd/gateway-metrics.go index fa53815c1..bea531e53 100644 --- a/cmd/gateway-metrics.go +++ b/cmd/gateway-metrics.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-startup-msg.go b/cmd/gateway-startup-msg.go index 60bd7df4e..81253f884 100644 --- a/cmd/gateway-startup-msg.go +++ b/cmd/gateway-startup-msg.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-startup-msg_test.go b/cmd/gateway-startup-msg_test.go index 0bb1734ca..c83c1482c 100644 --- a/cmd/gateway-startup-msg_test.go +++ b/cmd/gateway-startup-msg_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway-unsupported.go b/cmd/gateway-unsupported.go index 24652854b..a353fad76 100644 --- a/cmd/gateway-unsupported.go +++ b/cmd/gateway-unsupported.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/gateway/azure/gateway-azure.go b/cmd/gateway/azure/gateway-azure.go index 585885da8..f8d4fa1b8 100644 --- a/cmd/gateway/azure/gateway-azure.go +++ b/cmd/gateway/azure/gateway-azure.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package azure diff --git a/cmd/gateway/azure/gateway-azure_test.go b/cmd/gateway/azure/gateway-azure_test.go index 7c3987ac9..e993e2bd9 100644 --- a/cmd/gateway/azure/gateway-azure_test.go +++ b/cmd/gateway/azure/gateway-azure_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package azure diff --git a/cmd/gateway/gateway.go b/cmd/gateway/gateway.go index 627ae1146..b859d9857 100644 --- a/cmd/gateway/gateway.go +++ b/cmd/gateway/gateway.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package gateway diff --git a/cmd/gateway/gcs/gateway-gcs.go b/cmd/gateway/gcs/gateway-gcs.go index fd3859ae5..e5a8f6347 100644 --- a/cmd/gateway/gcs/gateway-gcs.go +++ b/cmd/gateway/gcs/gateway-gcs.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package gcs diff --git a/cmd/gateway/gcs/gateway-gcs_test.go b/cmd/gateway/gcs/gateway-gcs_test.go index 36936b16f..a438f186c 100644 --- a/cmd/gateway/gcs/gateway-gcs_test.go +++ b/cmd/gateway/gcs/gateway-gcs_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package gcs diff --git a/cmd/gateway/hdfs/gateway-hdfs-utils.go b/cmd/gateway/hdfs/gateway-hdfs-utils.go index 33382d24c..563989841 100644 --- a/cmd/gateway/hdfs/gateway-hdfs-utils.go +++ b/cmd/gateway/hdfs/gateway-hdfs-utils.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package hdfs diff --git a/cmd/gateway/hdfs/gateway-hdfs.go b/cmd/gateway/hdfs/gateway-hdfs.go index 0070ce644..b1e92c5a2 100644 --- a/cmd/gateway/hdfs/gateway-hdfs.go +++ b/cmd/gateway/hdfs/gateway-hdfs.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package hdfs diff --git a/cmd/gateway/nas/gateway-nas.go b/cmd/gateway/nas/gateway-nas.go index 48ddb03fd..7d9f03b1c 100644 --- a/cmd/gateway/nas/gateway-nas.go +++ b/cmd/gateway/nas/gateway-nas.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package nas diff --git a/cmd/gateway/s3/gateway-s3-metadata.go b/cmd/gateway/s3/gateway-s3-metadata.go index a4f0ff4ec..b86102f3c 100644 --- a/cmd/gateway/s3/gateway-s3-metadata.go +++ b/cmd/gateway/s3/gateway-s3-metadata.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3 diff --git a/cmd/gateway/s3/gateway-s3-metadata_test.go b/cmd/gateway/s3/gateway-s3-metadata_test.go index ba1f23766..b8624aed0 100644 --- a/cmd/gateway/s3/gateway-s3-metadata_test.go +++ b/cmd/gateway/s3/gateway-s3-metadata_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3 diff --git a/cmd/gateway/s3/gateway-s3-sse.go b/cmd/gateway/s3/gateway-s3-sse.go index f6b8174ef..36fe0d253 100644 --- a/cmd/gateway/s3/gateway-s3-sse.go +++ b/cmd/gateway/s3/gateway-s3-sse.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3 diff --git a/cmd/gateway/s3/gateway-s3-utils.go b/cmd/gateway/s3/gateway-s3-utils.go index 784f244ad..218d79ad4 100644 --- a/cmd/gateway/s3/gateway-s3-utils.go +++ b/cmd/gateway/s3/gateway-s3-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3 diff --git a/cmd/gateway/s3/gateway-s3.go b/cmd/gateway/s3/gateway-s3.go index 28f8a9234..94339aa08 100644 --- a/cmd/gateway/s3/gateway-s3.go +++ b/cmd/gateway/s3/gateway-s3.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3 diff --git a/cmd/gateway/s3/gateway-s3_test.go b/cmd/gateway/s3/gateway-s3_test.go index 3262db72c..f4a55fd61 100644 --- a/cmd/gateway/s3/gateway-s3_test.go +++ b/cmd/gateway/s3/gateway-s3_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3 diff --git a/cmd/generic-handlers.go b/cmd/generic-handlers.go index a3e67ba95..109c2940d 100644 --- a/cmd/generic-handlers.go +++ b/cmd/generic-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/generic-handlers_test.go b/cmd/generic-handlers_test.go index 9ca19d857..2804307b0 100644 --- a/cmd/generic-handlers_test.go +++ b/cmd/generic-handlers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/global-heal.go b/cmd/global-heal.go index 74197da34..dcdc909cc 100644 --- a/cmd/global-heal.go +++ b/cmd/global-heal.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/globals.go b/cmd/globals.go index f3d7367ed..70000b9e1 100644 --- a/cmd/globals.go +++ b/cmd/globals.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/handler-api.go b/cmd/handler-api.go index ee7067d11..84533d5c3 100644 --- a/cmd/handler-api.go +++ b/cmd/handler-api.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/handler-utils.go b/cmd/handler-utils.go index 7c15f3928..9336e7cf6 100644 --- a/cmd/handler-utils.go +++ b/cmd/handler-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/handler-utils_test.go b/cmd/handler-utils_test.go index 73547f031..7e23de120 100644 --- a/cmd/handler-utils_test.go +++ b/cmd/handler-utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/hasher.go b/cmd/hasher.go index d9d1371e5..7b06bd91d 100644 --- a/cmd/hasher.go +++ b/cmd/hasher.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/healthcheck-handler.go b/cmd/healthcheck-handler.go index f34659725..f8569c2f1 100644 --- a/cmd/healthcheck-handler.go +++ b/cmd/healthcheck-handler.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/healthcheck-router.go b/cmd/healthcheck-router.go index 27a903413..f68b5edd1 100644 --- a/cmd/healthcheck-router.go +++ b/cmd/healthcheck-router.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/healthinfo.go b/cmd/healthinfo.go index 6dfa2b9e9..50b0fc4eb 100644 --- a/cmd/healthinfo.go +++ b/cmd/healthinfo.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/healthinfo_linux.go b/cmd/healthinfo_linux.go index 9eca8188c..89aba5ab0 100644 --- a/cmd/healthinfo_linux.go +++ b/cmd/healthinfo_linux.go @@ -1,21 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/healthinfo_nonlinux.go b/cmd/healthinfo_nonlinux.go index 03bc13612..3f4624700 100644 --- a/cmd/healthinfo_nonlinux.go +++ b/cmd/healthinfo_nonlinux.go @@ -1,21 +1,21 @@ // +build !linux -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/http-stats.go b/cmd/http-stats.go index 3d55a07c9..2ecd78bba 100644 --- a/cmd/http-stats.go +++ b/cmd/http-stats.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/http-tracer.go b/cmd/http-tracer.go index db70440e4..b46a7668a 100644 --- a/cmd/http-tracer.go +++ b/cmd/http-tracer.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/http-tracer_test.go b/cmd/http-tracer_test.go index 5242f43b9..8567089b3 100644 --- a/cmd/http-tracer_test.go +++ b/cmd/http-tracer_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/http/close.go b/cmd/http/close.go index 900e41d0e..b85320812 100644 --- a/cmd/http/close.go +++ b/cmd/http/close.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/dial_dnscache.go b/cmd/http/dial_dnscache.go index 5513597be..60b7011db 100644 --- a/cmd/http/dial_dnscache.go +++ b/cmd/http/dial_dnscache.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/dial_dnscache_test.go b/cmd/http/dial_dnscache_test.go index 80e669b7f..00ae0357b 100644 --- a/cmd/http/dial_dnscache_test.go +++ b/cmd/http/dial_dnscache_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/dial_linux.go b/cmd/http/dial_linux.go index c79a1dde4..7197f98c1 100644 --- a/cmd/http/dial_linux.go +++ b/cmd/http/dial_linux.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/dial_others.go b/cmd/http/dial_others.go index 0943fdd47..33c07e762 100644 --- a/cmd/http/dial_others.go +++ b/cmd/http/dial_others.go @@ -1,20 +1,21 @@ // +build !linux -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/headers.go b/cmd/http/headers.go index 2fb24afea..33d443c43 100644 --- a/cmd/http/headers.go +++ b/cmd/http/headers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/listen_nix.go b/cmd/http/listen_nix.go index dd9cb199b..35e10dc32 100644 --- a/cmd/http/listen_nix.go +++ b/cmd/http/listen_nix.go @@ -1,20 +1,21 @@ // +build linux darwin dragonfly freebsd netbsd openbsd rumprun -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/listen_others.go b/cmd/http/listen_others.go index c19f720fb..4a1dd074f 100644 --- a/cmd/http/listen_others.go +++ b/cmd/http/listen_others.go @@ -1,20 +1,21 @@ // +build windows plan9 solaris -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/listener.go b/cmd/http/listener.go index 6066aec08..06dd20a41 100644 --- a/cmd/http/listener.go +++ b/cmd/http/listener.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/listener_test.go b/cmd/http/listener_test.go index 037ad8c6d..727ee67a4 100644 --- a/cmd/http/listener_test.go +++ b/cmd/http/listener_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/server.go b/cmd/http/server.go index 8a177762b..699dec6b7 100644 --- a/cmd/http/server.go +++ b/cmd/http/server.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/server_test.go b/cmd/http/server_test.go index 0a38dfbb6..2a80b6d1c 100644 --- a/cmd/http/server_test.go +++ b/cmd/http/server_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/http/stats/http-traffic-recorder.go b/cmd/http/stats/http-traffic-recorder.go index f554524f7..dbee1a3e7 100644 --- a/cmd/http/stats/http-traffic-recorder.go +++ b/cmd/http/stats/http-traffic-recorder.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package stats diff --git a/cmd/httprange.go b/cmd/httprange.go index 145e54f69..232991741 100644 --- a/cmd/httprange.go +++ b/cmd/httprange.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/httprange_test.go b/cmd/httprange_test.go index ee0b9a5fe..1614e96c3 100644 --- a/cmd/httprange_test.go +++ b/cmd/httprange_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/iam-etcd-store.go b/cmd/iam-etcd-store.go index 9d853fc9e..ac9b43f4e 100644 --- a/cmd/iam-etcd-store.go +++ b/cmd/iam-etcd-store.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/iam-etcd-store_test.go b/cmd/iam-etcd-store_test.go index bfbea2bfd..75958abb0 100644 --- a/cmd/iam-etcd-store_test.go +++ b/cmd/iam-etcd-store_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/iam-object-store.go b/cmd/iam-object-store.go index 8b0cd0ef1..5dae37992 100644 --- a/cmd/iam-object-store.go +++ b/cmd/iam-object-store.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/iam.go b/cmd/iam.go index 5c21755d7..edbab64a6 100644 --- a/cmd/iam.go +++ b/cmd/iam.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/jwt.go b/cmd/jwt.go index ddc8ce024..725371b52 100644 --- a/cmd/jwt.go +++ b/cmd/jwt.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/jwt/parser.go b/cmd/jwt/parser.go index 72c97042c..410025de8 100644 --- a/cmd/jwt/parser.go +++ b/cmd/jwt/parser.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package jwt diff --git a/cmd/jwt/parser_test.go b/cmd/jwt/parser_test.go index d12bdf40c..be604ce67 100644 --- a/cmd/jwt/parser_test.go +++ b/cmd/jwt/parser_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package jwt diff --git a/cmd/jwt_test.go b/cmd/jwt_test.go index 685d7afcb..babaebcbf 100644 --- a/cmd/jwt_test.go +++ b/cmd/jwt_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/leak-detect_test.go b/cmd/leak-detect_test.go index ca1aa42b8..96c5220e8 100644 --- a/cmd/leak-detect_test.go +++ b/cmd/leak-detect_test.go @@ -1,6 +1,19 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/listen-notification-handlers.go b/cmd/listen-notification-handlers.go index 0888804c2..ce46a8eee 100644 --- a/cmd/listen-notification-handlers.go +++ b/cmd/listen-notification-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/local-locker.go b/cmd/local-locker.go index cae0e77f4..431f0fb36 100644 --- a/cmd/local-locker.go +++ b/cmd/local-locker.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018, 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/lock-rest-client.go b/cmd/lock-rest-client.go index 35e1fecff..88b594d81 100644 --- a/cmd/lock-rest-client.go +++ b/cmd/lock-rest-client.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/lock-rest-client_test.go b/cmd/lock-rest-client_test.go index 187e32591..19ae9fc95 100644 --- a/cmd/lock-rest-client_test.go +++ b/cmd/lock-rest-client_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/lock-rest-server-common.go b/cmd/lock-rest-server-common.go index 3c4eba044..2964671f0 100644 --- a/cmd/lock-rest-server-common.go +++ b/cmd/lock-rest-server-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/lock-rest-server-common_test.go b/cmd/lock-rest-server-common_test.go index 33d457a85..623695258 100644 --- a/cmd/lock-rest-server-common_test.go +++ b/cmd/lock-rest-server-common_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/lock-rest-server.go b/cmd/lock-rest-server.go index 9b97a02b3..a92229743 100644 --- a/cmd/lock-rest-server.go +++ b/cmd/lock-rest-server.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/logger/audit.go b/cmd/logger/audit.go index 5274bf3ae..0e1ccc388 100644 --- a/cmd/logger/audit.go +++ b/cmd/logger/audit.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018, 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/config.go b/cmd/logger/config.go index f792f7cd3..c212b2d0d 100644 --- a/cmd/logger/config.go +++ b/cmd/logger/config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/console.go b/cmd/logger/console.go index 5ea222540..7337231d3 100644 --- a/cmd/logger/console.go +++ b/cmd/logger/console.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/help.go b/cmd/logger/help.go index 52703e3e7..3aca902bf 100644 --- a/cmd/logger/help.go +++ b/cmd/logger/help.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/legacy.go b/cmd/logger/legacy.go index 0d37a665d..d84833a0b 100644 --- a/cmd/logger/legacy.go +++ b/cmd/logger/legacy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/logger.go b/cmd/logger/logger.go index 20fd88c83..dd8e7f10f 100644 --- a/cmd/logger/logger.go +++ b/cmd/logger/logger.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/logonce.go b/cmd/logger/logonce.go index 3535ddaf8..63ad3e87a 100644 --- a/cmd/logger/logonce.go +++ b/cmd/logger/logonce.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/message/audit/entry.go b/cmd/logger/message/audit/entry.go index dd7286e97..20c04adad 100644 --- a/cmd/logger/message/audit/entry.go +++ b/cmd/logger/message/audit/entry.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package audit diff --git a/cmd/logger/message/log/entry.go b/cmd/logger/message/log/entry.go index e8e19c318..3c4409650 100644 --- a/cmd/logger/message/log/entry.go +++ b/cmd/logger/message/log/entry.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018, 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package log diff --git a/cmd/logger/reqinfo.go b/cmd/logger/reqinfo.go index ee5a1d238..56e8c3ea8 100644 --- a/cmd/logger/reqinfo.go +++ b/cmd/logger/reqinfo.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/target/console/console.go b/cmd/logger/target/console/console.go index 99fe3a389..e3c7b1f74 100644 --- a/cmd/logger/target/console/console.go +++ b/cmd/logger/target/console/console.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package console diff --git a/cmd/logger/target/http/http.go b/cmd/logger/target/http/http.go index 2d9767161..50e80aec5 100644 --- a/cmd/logger/target/http/http.go +++ b/cmd/logger/target/http/http.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018, 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package http diff --git a/cmd/logger/targets.go b/cmd/logger/targets.go index 470ea319b..a3253d7cc 100644 --- a/cmd/logger/targets.go +++ b/cmd/logger/targets.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/logger/utils.go b/cmd/logger/utils.go index 18fe889e5..6a3832499 100644 --- a/cmd/logger/utils.go +++ b/cmd/logger/utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package logger diff --git a/cmd/main.go b/cmd/main.go index 4565ba89e..7b86faf3c 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-bucket.go b/cmd/metacache-bucket.go index 44d00ae2a..eb1bd1c18 100644 --- a/cmd/metacache-bucket.go +++ b/cmd/metacache-bucket.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-bucket_gen.go b/cmd/metacache-bucket_gen.go index 580ce51ba..63f01ca3e 100644 --- a/cmd/metacache-bucket_gen.go +++ b/cmd/metacache-bucket_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/metacache-bucket_gen_test.go b/cmd/metacache-bucket_gen_test.go index 38a5ca2d8..0d3987cff 100644 --- a/cmd/metacache-bucket_gen_test.go +++ b/cmd/metacache-bucket_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/metacache-bucket_test.go b/cmd/metacache-bucket_test.go index 1f157a4f2..bdbe9f205 100644 --- a/cmd/metacache-bucket_test.go +++ b/cmd/metacache-bucket_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd import ( diff --git a/cmd/metacache-entries.go b/cmd/metacache-entries.go index 1c603f404..c0fe28bfe 100644 --- a/cmd/metacache-entries.go +++ b/cmd/metacache-entries.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-entries_test.go b/cmd/metacache-entries_test.go index 75379ccba..380933263 100644 --- a/cmd/metacache-entries_test.go +++ b/cmd/metacache-entries_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-manager.go b/cmd/metacache-manager.go index 480b06570..3b53ee3f6 100644 --- a/cmd/metacache-manager.go +++ b/cmd/metacache-manager.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-marker.go b/cmd/metacache-marker.go index b93c231ed..f0b309456 100644 --- a/cmd/metacache-marker.go +++ b/cmd/metacache-marker.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-server-pool.go b/cmd/metacache-server-pool.go index ea5086f08..82532bf7b 100644 --- a/cmd/metacache-server-pool.go +++ b/cmd/metacache-server-pool.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-set.go b/cmd/metacache-set.go index b7cbb67a0..c02e73d91 100644 --- a/cmd/metacache-set.go +++ b/cmd/metacache-set.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-stream.go b/cmd/metacache-stream.go index 08a2f7375..f39215f11 100644 --- a/cmd/metacache-stream.go +++ b/cmd/metacache-stream.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-stream_test.go b/cmd/metacache-stream_test.go index 063e985fa..35a75444e 100644 --- a/cmd/metacache-stream_test.go +++ b/cmd/metacache-stream_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache-walk.go b/cmd/metacache-walk.go index 16d5c3ebd..bf0be256a 100644 --- a/cmd/metacache-walk.go +++ b/cmd/metacache-walk.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache.go b/cmd/metacache.go index 9f0120b51..4e8708141 100644 --- a/cmd/metacache.go +++ b/cmd/metacache.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metacache_gen.go b/cmd/metacache_gen.go index ef2577490..0d7324205 100644 --- a/cmd/metacache_gen.go +++ b/cmd/metacache_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/metacache_gen_test.go b/cmd/metacache_gen_test.go index 1b61d9a1d..d03e196d5 100644 --- a/cmd/metacache_gen_test.go +++ b/cmd/metacache_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/metacache_test.go b/cmd/metacache_test.go index 65fa606ba..345fe6278 100644 --- a/cmd/metacache_test.go +++ b/cmd/metacache_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metrics-router.go b/cmd/metrics-router.go index 230ca079e..8f9aeda4c 100644 --- a/cmd/metrics-router.go +++ b/cmd/metrics-router.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metrics-v2.go b/cmd/metrics-v2.go index 3447a55d7..41cf3e32f 100644 --- a/cmd/metrics-v2.go +++ b/cmd/metrics-v2.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/metrics.go b/cmd/metrics.go index 99c3d5352..dcc14fbdd 100644 --- a/cmd/metrics.go +++ b/cmd/metrics.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/namespace-lock.go b/cmd/namespace-lock.go index 86d3d0dc8..58aaff398 100644 --- a/cmd/namespace-lock.go +++ b/cmd/namespace-lock.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/namespace-lock_test.go b/cmd/namespace-lock_test.go index 719a80cec..f92e71e05 100644 --- a/cmd/namespace-lock_test.go +++ b/cmd/namespace-lock_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/naughty-disk_test.go b/cmd/naughty-disk_test.go index 22e9d9fb5..21636f675 100644 --- a/cmd/naughty-disk_test.go +++ b/cmd/naughty-disk_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/net.go b/cmd/net.go index 9cd48cee0..ca786d9da 100644 --- a/cmd/net.go +++ b/cmd/net.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/net_test.go b/cmd/net_test.go index 390d83390..ea63cc68a 100644 --- a/cmd/net_test.go +++ b/cmd/net_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/notification-summary.go b/cmd/notification-summary.go index fceafa891..de96a267a 100644 --- a/cmd/notification-summary.go +++ b/cmd/notification-summary.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/notification.go b/cmd/notification.go index 3c56fac04..c0dad71ea 100644 --- a/cmd/notification.go +++ b/cmd/notification.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018, 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd @@ -36,7 +37,6 @@ import ( "github.com/minio/minio/cmd/crypto" xhttp "github.com/minio/minio/cmd/http" "github.com/minio/minio/cmd/logger" - bandwidth "github.com/minio/minio/pkg/bandwidth" bucketBandwidth "github.com/minio/minio/pkg/bucket/bandwidth" "github.com/minio/minio/pkg/bucket/policy" "github.com/minio/minio/pkg/event" @@ -1460,8 +1460,8 @@ func sendEvent(args eventArgs) { } // GetBandwidthReports - gets the bandwidth report from all nodes including self. -func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ...string) bandwidth.Report { - reports := make([]*bandwidth.Report, len(sys.peerClients)) +func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ...string) madmin.BucketBandwidthReport { + reports := make([]*madmin.BucketBandwidthReport, len(sys.peerClients)) g := errgroup.WithNErrs(len(sys.peerClients)) for index := range sys.peerClients { if sys.peerClients[index] == nil { @@ -1482,8 +1482,8 @@ func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ... logger.LogOnceIf(ctx, err, sys.peerClients[index].host.String()) } reports = append(reports, globalBucketMonitor.GetReport(bucketBandwidth.SelectBuckets(buckets...))) - consolidatedReport := bandwidth.Report{ - BucketStats: make(map[string]bandwidth.Details), + consolidatedReport := madmin.BucketBandwidthReport{ + BucketStats: make(map[string]madmin.BandwidthDetails), } for _, report := range reports { if report == nil || report.BucketStats == nil { @@ -1492,7 +1492,7 @@ func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ... for bucket := range report.BucketStats { d, ok := consolidatedReport.BucketStats[bucket] if !ok { - consolidatedReport.BucketStats[bucket] = bandwidth.Details{} + consolidatedReport.BucketStats[bucket] = madmin.BandwidthDetails{} d = consolidatedReport.BucketStats[bucket] d.LimitInBytesPerSecond = report.BucketStats[bucket].LimitInBytesPerSecond } diff --git a/cmd/object-api-common.go b/cmd/object-api-common.go index a977519e3..0c0441d0b 100644 --- a/cmd/object-api-common.go +++ b/cmd/object-api-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-datatypes.go b/cmd/object-api-datatypes.go index 210814490..9497b9993 100644 --- a/cmd/object-api-datatypes.go +++ b/cmd/object-api-datatypes.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-deleteobject_test.go b/cmd/object-api-deleteobject_test.go index a7e7b8e37..c962f8ea8 100644 --- a/cmd/object-api-deleteobject_test.go +++ b/cmd/object-api-deleteobject_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-errors.go b/cmd/object-api-errors.go index 6818a2a0f..d98ff4e41 100644 --- a/cmd/object-api-errors.go +++ b/cmd/object-api-errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-getobjectinfo_test.go b/cmd/object-api-getobjectinfo_test.go index 73c656162..a10bc979b 100644 --- a/cmd/object-api-getobjectinfo_test.go +++ b/cmd/object-api-getobjectinfo_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-input-checks.go b/cmd/object-api-input-checks.go index 465be5ed9..e1d809184 100644 --- a/cmd/object-api-input-checks.go +++ b/cmd/object-api-input-checks.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-interface.go b/cmd/object-api-interface.go index bb6bd0af5..508f68769 100644 --- a/cmd/object-api-interface.go +++ b/cmd/object-api-interface.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-listobjects_test.go b/cmd/object-api-listobjects_test.go index dca97eebd..ec892b7ea 100644 --- a/cmd/object-api-listobjects_test.go +++ b/cmd/object-api-listobjects_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-multipart_test.go b/cmd/object-api-multipart_test.go index a65bfd425..b8e81c9ba 100644 --- a/cmd/object-api-multipart_test.go +++ b/cmd/object-api-multipart_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-options.go b/cmd/object-api-options.go index 8de687d0d..9a978a2ee 100644 --- a/cmd/object-api-options.go +++ b/cmd/object-api-options.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-putobject_test.go b/cmd/object-api-putobject_test.go index cf1d4603d..1c4c30e81 100644 --- a/cmd/object-api-putobject_test.go +++ b/cmd/object-api-putobject_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-utils.go b/cmd/object-api-utils.go index ffc7c7386..6774c4132 100644 --- a/cmd/object-api-utils.go +++ b/cmd/object-api-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-api-utils_test.go b/cmd/object-api-utils_test.go index e92fefd97..84d5a6240 100644 --- a/cmd/object-api-utils_test.go +++ b/cmd/object-api-utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-handlers-common.go b/cmd/object-handlers-common.go index 59c6f5df6..ded352a44 100644 --- a/cmd/object-handlers-common.go +++ b/cmd/object-handlers-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-handlers-common_test.go b/cmd/object-handlers-common_test.go index ef725c673..d2b1e74ff 100644 --- a/cmd/object-handlers-common_test.go +++ b/cmd/object-handlers-common_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-handlers.go b/cmd/object-handlers.go index b3a45ca1a..1179fa27b 100644 --- a/cmd/object-handlers.go +++ b/cmd/object-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object-handlers_test.go b/cmd/object-handlers_test.go index 4178529a2..add6cdbf7 100644 --- a/cmd/object-handlers_test.go +++ b/cmd/object-handlers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/object_api_suite_test.go b/cmd/object_api_suite_test.go index df209078d..d8cb13a8b 100644 --- a/cmd/object_api_suite_test.go +++ b/cmd/object_api_suite_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-dirent_fileino.go b/cmd/os-dirent_fileino.go index 2a9104b4d..04cca402f 100644 --- a/cmd/os-dirent_fileino.go +++ b/cmd/os-dirent_fileino.go @@ -1,20 +1,21 @@ // +build freebsd openbsd netbsd -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-dirent_ino.go b/cmd/os-dirent_ino.go index 3c8a4653c..b83dbe499 100644 --- a/cmd/os-dirent_ino.go +++ b/cmd/os-dirent_ino.go @@ -1,22 +1,23 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // +build linux darwin // +build !appengine -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package cmd import "syscall" diff --git a/cmd/os-dirent_namelen_bsd.go b/cmd/os-dirent_namelen_bsd.go index 6286f2e8b..74a8e8138 100644 --- a/cmd/os-dirent_namelen_bsd.go +++ b/cmd/os-dirent_namelen_bsd.go @@ -1,20 +1,21 @@ // +build darwin freebsd openbsd netbsd -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-dirent_namelen_linux.go b/cmd/os-dirent_namelen_linux.go index 00e56aac7..acb09eb45 100644 --- a/cmd/os-dirent_namelen_linux.go +++ b/cmd/os-dirent_namelen_linux.go @@ -1,20 +1,21 @@ // +build linux,!appengine -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-instrumented.go b/cmd/os-instrumented.go index a1de41950..d17349836 100644 --- a/cmd/os-instrumented.go +++ b/cmd/os-instrumented.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-readdir_other.go b/cmd/os-readdir_other.go index eaa4e10ea..66019e6f3 100644 --- a/cmd/os-readdir_other.go +++ b/cmd/os-readdir_other.go @@ -1,20 +1,21 @@ // +build plan9 solaris -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-readdir_test.go b/cmd/os-readdir_test.go index 5b16d601e..5d58b708a 100644 --- a/cmd/os-readdir_test.go +++ b/cmd/os-readdir_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-readdir_unix.go b/cmd/os-readdir_unix.go index 1d46571c8..aa351b844 100644 --- a/cmd/os-readdir_unix.go +++ b/cmd/os-readdir_unix.go @@ -1,20 +1,21 @@ // +build linux,!appengine darwin freebsd netbsd openbsd -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-readdir_windows.go b/cmd/os-readdir_windows.go index d9ae7c9ea..e8f0e00d8 100644 --- a/cmd/os-readdir_windows.go +++ b/cmd/os-readdir_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-reliable.go b/cmd/os-reliable.go index 3c9be855e..50f4f5626 100644 --- a/cmd/os-reliable.go +++ b/cmd/os-reliable.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/os-reliable_test.go b/cmd/os-reliable_test.go index c2cee0d27..3816007b2 100644 --- a/cmd/os-reliable_test.go +++ b/cmd/os-reliable_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/osmetric_string.go b/cmd/osmetric_string.go index 071b77605..5cbcf5841 100644 --- a/cmd/osmetric_string.go +++ b/cmd/osmetric_string.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Code generated by "stringer -type=osMetric -trimprefix=osMetric os-instrumented.go"; DO NOT EDIT. package cmd diff --git a/cmd/peer-rest-client.go b/cmd/peer-rest-client.go index 7f2f396c5..ff8d2f1dc 100644 --- a/cmd/peer-rest-client.go +++ b/cmd/peer-rest-client.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd @@ -36,7 +37,6 @@ import ( xhttp "github.com/minio/minio/cmd/http" "github.com/minio/minio/cmd/logger" "github.com/minio/minio/cmd/rest" - "github.com/minio/minio/pkg/bandwidth" "github.com/minio/minio/pkg/event" "github.com/minio/minio/pkg/madmin" xnet "github.com/minio/minio/pkg/net" @@ -912,7 +912,7 @@ func newPeerRESTClient(peer *xnet.Host) *peerRESTClient { } // MonitorBandwidth - send http trace request to peer nodes -func (client *peerRESTClient) MonitorBandwidth(ctx context.Context, buckets []string) (*bandwidth.Report, error) { +func (client *peerRESTClient) MonitorBandwidth(ctx context.Context, buckets []string) (*madmin.BucketBandwidthReport, error) { values := make(url.Values) values.Set(peerRESTBuckets, strings.Join(buckets, ",")) respBody, err := client.callWithContext(ctx, peerRESTMethodGetBandwidth, values, nil, -1) @@ -922,7 +922,7 @@ func (client *peerRESTClient) MonitorBandwidth(ctx context.Context, buckets []st defer http.DrainBody(respBody) dec := gob.NewDecoder(respBody) - var bandwidthReport bandwidth.Report + var bandwidthReport madmin.BucketBandwidthReport err = dec.Decode(&bandwidthReport) return &bandwidthReport, err } diff --git a/cmd/peer-rest-common.go b/cmd/peer-rest-common.go index 3311df7f2..37e5b7c76 100644 --- a/cmd/peer-rest-common.go +++ b/cmd/peer-rest-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/peer-rest-server.go b/cmd/peer-rest-server.go index 9de9c497d..ed695c14e 100644 --- a/cmd/peer-rest-server.go +++ b/cmd/peer-rest-server.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/policy_test.go b/cmd/policy_test.go index e51c469ba..c8157538a 100644 --- a/cmd/policy_test.go +++ b/cmd/policy_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/post-policy_test.go b/cmd/post-policy_test.go index 1edf9b9a4..da5ee254e 100644 --- a/cmd/post-policy_test.go +++ b/cmd/post-policy_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/postpolicyform.go b/cmd/postpolicyform.go index b011f3783..13c54c97d 100644 --- a/cmd/postpolicyform.go +++ b/cmd/postpolicyform.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/postpolicyform_test.go b/cmd/postpolicyform_test.go index ad4de4a8e..8095c4d0f 100644 --- a/cmd/postpolicyform_test.go +++ b/cmd/postpolicyform_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/prepare-storage.go b/cmd/prepare-storage.go index 6df99a44b..962851c72 100644 --- a/cmd/prepare-storage.go +++ b/cmd/prepare-storage.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/rest/client.go b/cmd/rest/client.go index 99ddf432e..591382121 100644 --- a/cmd/rest/client.go +++ b/cmd/rest/client.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package rest diff --git a/cmd/rest/client_test.go b/cmd/rest/client_test.go index 83e096acb..9c17a96f2 100644 --- a/cmd/rest/client_test.go +++ b/cmd/rest/client_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package rest diff --git a/cmd/routers.go b/cmd/routers.go index f4c510429..f8e9efdd1 100644 --- a/cmd/routers.go +++ b/cmd/routers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/server-main.go b/cmd/server-main.go index 0ee4cabf6..a1bcb64cc 100644 --- a/cmd/server-main.go +++ b/cmd/server-main.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/server-main_test.go b/cmd/server-main_test.go index f1b6ed626..980b1961a 100644 --- a/cmd/server-main_test.go +++ b/cmd/server-main_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/server-rlimit.go b/cmd/server-rlimit.go index 79c0a87f1..f1d8f157d 100644 --- a/cmd/server-rlimit.go +++ b/cmd/server-rlimit.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/server-startup-msg.go b/cmd/server-startup-msg.go index cb7710195..c0575ad24 100644 --- a/cmd/server-startup-msg.go +++ b/cmd/server-startup-msg.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/server-startup-msg_test.go b/cmd/server-startup-msg_test.go index ec66cf366..d6b458505 100644 --- a/cmd/server-startup-msg_test.go +++ b/cmd/server-startup-msg_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/server_test.go b/cmd/server_test.go index ec0d38e0a..a72852faa 100644 --- a/cmd/server_test.go +++ b/cmd/server_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/service.go b/cmd/service.go index fe4c04e9c..376f503bc 100644 --- a/cmd/service.go +++ b/cmd/service.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/setup-type.go b/cmd/setup-type.go index df91868dd..1b81f5a46 100644 --- a/cmd/setup-type.go +++ b/cmd/setup-type.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signals.go b/cmd/signals.go index 00182c903..b7ececab7 100644 --- a/cmd/signals.go +++ b/cmd/signals.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signature-v2.go b/cmd/signature-v2.go index f0fa6cbd9..474a2e096 100644 --- a/cmd/signature-v2.go +++ b/cmd/signature-v2.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signature-v2_test.go b/cmd/signature-v2_test.go index bf52c9b71..0b8b3bfbe 100644 --- a/cmd/signature-v2_test.go +++ b/cmd/signature-v2_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signature-v4-parser.go b/cmd/signature-v4-parser.go index 67f7aba1b..05fab42ba 100644 --- a/cmd/signature-v4-parser.go +++ b/cmd/signature-v4-parser.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signature-v4-parser_test.go b/cmd/signature-v4-parser_test.go index aab732d89..2c25eb9a3 100644 --- a/cmd/signature-v4-parser_test.go +++ b/cmd/signature-v4-parser_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signature-v4-utils.go b/cmd/signature-v4-utils.go index 90f53f955..a601273a4 100644 --- a/cmd/signature-v4-utils.go +++ b/cmd/signature-v4-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signature-v4-utils_test.go b/cmd/signature-v4-utils_test.go index 01c048054..931c453b6 100644 --- a/cmd/signature-v4-utils_test.go +++ b/cmd/signature-v4-utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/signature-v4.go b/cmd/signature-v4.go index 63ee1cc25..7897ba90f 100644 --- a/cmd/signature-v4.go +++ b/cmd/signature-v4.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package cmd This file implements helper functions to validate AWS // Signature Version '4' authorization header. diff --git a/cmd/signature-v4_test.go b/cmd/signature-v4_test.go index f47d784ec..16601d08a 100644 --- a/cmd/signature-v4_test.go +++ b/cmd/signature-v4_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storage-datatypes.go b/cmd/storage-datatypes.go index 0191149c6..e60cf5a42 100644 --- a/cmd/storage-datatypes.go +++ b/cmd/storage-datatypes.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storage-datatypes_gen.go b/cmd/storage-datatypes_gen.go index 57a4fa945..8775f21d9 100644 --- a/cmd/storage-datatypes_gen.go +++ b/cmd/storage-datatypes_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/storage-datatypes_gen_test.go b/cmd/storage-datatypes_gen_test.go index 3bbe8555b..a7442d643 100644 --- a/cmd/storage-datatypes_gen_test.go +++ b/cmd/storage-datatypes_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/storage-datatypes_test.go b/cmd/storage-datatypes_test.go index 3b94013fc..87c20fff5 100644 --- a/cmd/storage-datatypes_test.go +++ b/cmd/storage-datatypes_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storage-errors.go b/cmd/storage-errors.go index eb87ad913..3c52c714c 100644 --- a/cmd/storage-errors.go +++ b/cmd/storage-errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storage-interface.go b/cmd/storage-interface.go index 3c505bf90..c043ec8aa 100644 --- a/cmd/storage-interface.go +++ b/cmd/storage-interface.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storage-rest-client.go b/cmd/storage-rest-client.go index e650d41ce..52ad9c643 100644 --- a/cmd/storage-rest-client.go +++ b/cmd/storage-rest-client.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storage-rest-common.go b/cmd/storage-rest-common.go index cd9e25b7b..c58ea86e9 100644 --- a/cmd/storage-rest-common.go +++ b/cmd/storage-rest-common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storage-rest-server.go b/cmd/storage-rest-server.go index dddfaffcc..1d96fe4fa 100644 --- a/cmd/storage-rest-server.go +++ b/cmd/storage-rest-server.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd @@ -272,7 +273,7 @@ func (s *storageRESTServer) AppendFileHandler(w http.ResponseWriter, r *http.Req } } -// CreateFileHandler - fallocate() space for a file and copy the contents from the request. +// CreateFileHandler - copy the contents from the request. func (s *storageRESTServer) CreateFileHandler(w http.ResponseWriter, r *http.Request) { if !s.IsValid(w, r) { return diff --git a/cmd/storage-rest_test.go b/cmd/storage-rest_test.go index 3cbf578eb..5674414b5 100644 --- a/cmd/storage-rest_test.go +++ b/cmd/storage-rest_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/storagemetric_string.go b/cmd/storagemetric_string.go index 8026aabef..4f1b4e4ec 100644 --- a/cmd/storagemetric_string.go +++ b/cmd/storagemetric_string.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Code generated by "stringer -type=storageMetric -trimprefix=storageMetric xl-storage-disk-id-check.go"; DO NOT EDIT. package cmd diff --git a/cmd/streaming-signature-v4.go b/cmd/streaming-signature-v4.go index e875ba37a..d6f35ed1a 100644 --- a/cmd/streaming-signature-v4.go +++ b/cmd/streaming-signature-v4.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package cmd This file implements helper functions to validate Streaming AWS // Signature Version '4' authorization header. diff --git a/cmd/streaming-signature-v4_test.go b/cmd/streaming-signature-v4_test.go index f85c0b543..89a729f55 100644 --- a/cmd/streaming-signature-v4_test.go +++ b/cmd/streaming-signature-v4_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/sts-datatypes.go b/cmd/sts-datatypes.go index 18f440d82..1f7d7cac4 100644 --- a/cmd/sts-datatypes.go +++ b/cmd/sts-datatypes.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/sts-errors.go b/cmd/sts-errors.go index b17995466..6bc220ce5 100644 --- a/cmd/sts-errors.go +++ b/cmd/sts-errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/sts-handlers.go b/cmd/sts-handlers.go index dac331e7c..519f3c3e5 100644 --- a/cmd/sts-handlers.go +++ b/cmd/sts-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/stserrorcode_string.go b/cmd/stserrorcode_string.go index 8b96ab7a5..1f9cd6252 100644 --- a/cmd/stserrorcode_string.go +++ b/cmd/stserrorcode_string.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Code generated by "stringer -type=STSErrorCode -trimprefix=Err sts-errors.go"; DO NOT EDIT. package cmd diff --git a/cmd/test-utils_test.go b/cmd/test-utils_test.go index 24c606406..4770e4ab4 100644 --- a/cmd/test-utils_test.go +++ b/cmd/test-utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/tree-walk.go b/cmd/tree-walk.go index ff967bef3..aa559990f 100644 --- a/cmd/tree-walk.go +++ b/cmd/tree-walk.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/tree-walk_test.go b/cmd/tree-walk_test.go index 46f47304a..ad80e4607 100644 --- a/cmd/tree-walk_test.go +++ b/cmd/tree-walk_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/typed-errors.go b/cmd/typed-errors.go index 053dba0d4..9aa23ce05 100644 --- a/cmd/typed-errors.go +++ b/cmd/typed-errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/untar.go b/cmd/untar.go index e862ba034..6ba374e9a 100644 --- a/cmd/untar.go +++ b/cmd/untar.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/update-notifier.go b/cmd/update-notifier.go index f80c7d532..9338d1b55 100644 --- a/cmd/update-notifier.go +++ b/cmd/update-notifier.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/update-notifier_test.go b/cmd/update-notifier_test.go index b175ede39..c73e08c9c 100644 --- a/cmd/update-notifier_test.go +++ b/cmd/update-notifier_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/update.go b/cmd/update.go index 7c3f74feb..8458e1063 100644 --- a/cmd/update.go +++ b/cmd/update.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/update_fips.go b/cmd/update_fips.go index e1c136239..06cc57e06 100644 --- a/cmd/update_fips.go +++ b/cmd/update_fips.go @@ -1,20 +1,21 @@ // +build fips -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/update_nofips.go b/cmd/update_nofips.go index 8051e57bc..95dbd2aa9 100644 --- a/cmd/update_nofips.go +++ b/cmd/update_nofips.go @@ -1,20 +1,21 @@ // +build !fips -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/update_test.go b/cmd/update_test.go index 17aa81373..f08c740e9 100644 --- a/cmd/update_test.go +++ b/cmd/update_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/utils.go b/cmd/utils.go index deedc1fdd..55f67dde2 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/utils_test.go b/cmd/utils_test.go index 4aaf44b2f..01ccd9216 100644 --- a/cmd/utils_test.go +++ b/cmd/utils_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/version_test.go b/cmd/version_test.go index d76977cd5..ef0ee6bb3 100644 --- a/cmd/version_test.go +++ b/cmd/version_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/web-handler-context.go b/cmd/web-handler-context.go index be18b241c..41236a904 100644 --- a/cmd/web-handler-context.go +++ b/cmd/web-handler-context.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/web-handler-context_test.go b/cmd/web-handler-context_test.go index 807f96d04..0e1865675 100644 --- a/cmd/web-handler-context_test.go +++ b/cmd/web-handler-context_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/web-handlers.go b/cmd/web-handlers.go index ec890ef55..68bfe1776 100644 --- a/cmd/web-handlers.go +++ b/cmd/web-handlers.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/web-handlers_test.go b/cmd/web-handlers_test.go index 914a25907..8555f7445 100644 --- a/cmd/web-handlers_test.go +++ b/cmd/web-handlers_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/web-router.go b/cmd/web-router.go index b390a5e2c..055618dd7 100644 --- a/cmd/web-router.go +++ b/cmd/web-router.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-disk-id-check.go b/cmd/xl-storage-disk-id-check.go index c5cd5b8d0..fcfe3212e 100644 --- a/cmd/xl-storage-disk-id-check.go +++ b/cmd/xl-storage-disk-id-check.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-errors.go b/cmd/xl-storage-errors.go index 78673f76d..1fe4ee109 100644 --- a/cmd/xl-storage-errors.go +++ b/cmd/xl-storage-errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-errors_test.go b/cmd/xl-storage-errors_test.go index 0e0db6cd3..0a4757765 100644 --- a/cmd/xl-storage-errors_test.go +++ b/cmd/xl-storage-errors_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-format-utils.go b/cmd/xl-storage-format-utils.go index bd150ce80..b715b05af 100644 --- a/cmd/xl-storage-format-utils.go +++ b/cmd/xl-storage-format-utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-format-v1.go b/cmd/xl-storage-format-v1.go index cf374b799..a50ad9ac4 100644 --- a/cmd/xl-storage-format-v1.go +++ b/cmd/xl-storage-format-v1.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-format-v1_gen.go b/cmd/xl-storage-format-v1_gen.go index 6c88e0daf..2c7ae1307 100644 --- a/cmd/xl-storage-format-v1_gen.go +++ b/cmd/xl-storage-format-v1_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/xl-storage-format-v1_gen_test.go b/cmd/xl-storage-format-v1_gen_test.go index 0b66c8938..2df257717 100644 --- a/cmd/xl-storage-format-v1_gen_test.go +++ b/cmd/xl-storage-format-v1_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/xl-storage-format-v2.go b/cmd/xl-storage-format-v2.go index 6ed51a597..7c73f9556 100644 --- a/cmd/xl-storage-format-v2.go +++ b/cmd/xl-storage-format-v2.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-format-v2_gen.go b/cmd/xl-storage-format-v2_gen.go index 307147ca1..c62d4e0bc 100644 --- a/cmd/xl-storage-format-v2_gen.go +++ b/cmd/xl-storage-format-v2_gen.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/xl-storage-format-v2_gen_test.go b/cmd/xl-storage-format-v2_gen_test.go index 39f03c898..57ae47dfb 100644 --- a/cmd/xl-storage-format-v2_gen_test.go +++ b/cmd/xl-storage-format-v2_gen_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package cmd // Code generated by github.com/tinylib/msgp DO NOT EDIT. diff --git a/cmd/xl-storage-format-v2_test.go b/cmd/xl-storage-format-v2_test.go index 9fbc90cac..954fc43cf 100644 --- a/cmd/xl-storage-format-v2_test.go +++ b/cmd/xl-storage-format-v2_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage-format_test.go b/cmd/xl-storage-format_test.go index aa612b6d4..4fd621234 100644 --- a/cmd/xl-storage-format_test.go +++ b/cmd/xl-storage-format_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage.go b/cmd/xl-storage.go index 5630e9112..3277f0534 100644 --- a/cmd/xl-storage.go +++ b/cmd/xl-storage.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage_noatime_notsupported.go b/cmd/xl-storage_noatime_notsupported.go index a5a00d5b6..438174812 100644 --- a/cmd/xl-storage_noatime_notsupported.go +++ b/cmd/xl-storage_noatime_notsupported.go @@ -1,20 +1,21 @@ // +build windows darwin freebsd -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage_noatime_supported.go b/cmd/xl-storage_noatime_supported.go index ca50d1f86..4dc43163a 100644 --- a/cmd/xl-storage_noatime_supported.go +++ b/cmd/xl-storage_noatime_supported.go @@ -1,20 +1,21 @@ // +build !windows,!darwin,!freebsd -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage_test.go b/cmd/xl-storage_test.go index cae1ae0fa..d193029b6 100644 --- a/cmd/xl-storage_test.go +++ b/cmd/xl-storage_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage_unix_test.go b/cmd/xl-storage_unix_test.go index 5eb781a6f..00c7dadcf 100644 --- a/cmd/xl-storage_unix_test.go +++ b/cmd/xl-storage_unix_test.go @@ -1,20 +1,21 @@ // +build linux darwin dragonfly freebsd netbsd openbsd -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/cmd/xl-storage_windows_test.go b/cmd/xl-storage_windows_test.go index cd49e0152..27e01bf0e 100644 --- a/cmd/xl-storage_windows_test.go +++ b/cmd/xl-storage_windows_test.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/docs/bucket/versioning/xl-meta.go b/docs/bucket/versioning/xl-meta.go index 6aeebd53b..9d719eba3 100644 --- a/docs/bucket/versioning/xl-meta.go +++ b/docs/bucket/versioning/xl-meta.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/docs/sts/client-grants.go b/docs/sts/client-grants.go index f7b713006..9a19981c7 100644 --- a/docs/sts/client-grants.go +++ b/docs/sts/client-grants.go @@ -1,20 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019,2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/docs/sts/ldap.go b/docs/sts/ldap.go index 41a67bb84..57dae8fa0 100644 --- a/docs/sts/ldap.go +++ b/docs/sts/ldap.go @@ -1,20 +1,22 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/docs/sts/web-identity.go b/docs/sts/web-identity.go index 05b0057dc..1be3b3a82 100644 --- a/docs/sts/web-identity.go +++ b/docs/sts/web-identity.go @@ -1,20 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019,2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/docs/zh_CN/FreeBSD.md b/docs/zh_CN/FreeBSD.md deleted file mode 100644 index 07c7bba2c..000000000 --- a/docs/zh_CN/FreeBSD.md +++ /dev/null @@ -1,76 +0,0 @@ -# MinIO FreeBSD 快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) - -### MinIO with ZFS backend - FreeBSD -此示例假设你已经有正在运行的FreeBSD 11.x。 - -#### 启动 ZFS service -```sh -sysrc zfs_enable="YES" -``` - -启动 ZFS service -```sh -service zfs start -``` - -在 `/zfs` 文件上配置一个回环设备`loopback device `。 -```sh -dd if=/dev/zero of=/zfs bs=1M count=4000 -mdconfig -a -t vnode -f /zfs -``` - -创建zfs池 -```sh -zpool create minio-example /dev/md0 -``` - -```sh -df /minio-example -Filesystem 512-blocks Used Avail Capacity Mounted on -minio-example 7872440 38 7872402 0% /minio-example -``` - -验证其是否可写 -```sh -touch /minio-example/testfile -ls -l /minio-example/testfile --rw-r--r-- 1 root wheel 0 Apr 26 00:51 /minio-example/testfile -``` - -现在您已经成功创建了一个ZFS池,了解更多,请参考 [ZFS 快速入门](https://www.freebsd.org/doc/handbook/zfs-quickstart.html) - -不过,这个池并没有利用ZFS的任何特性。我们可以在这个池上创建一个带有压缩功能的ZFS文件系统,ZFS支持多种压缩算法: [`lzjb`, `gzip`, `zle`, `lz4`]。`lz4` 在数据压缩和系统开销方面通常是最最优的算法。 -```sh -zfs create minio-example/compressed-objects -zfs set compression=lz4 minio-example/compressed-objects -``` - -监控池是否健康 -```sh -zpool status -x -all pools are healthy -``` - -#### 启动MinIO服务 -从FreeBSD port安装 [MinIO](https://min.io)。 -```sh -pkg install minio -``` - -配置MinIO,让其使用挂载在`/minio-example/compressed-objects`的ZFS卷。 -``` -sysrc minio_enable=yes -sysrc minio_disks=/minio-example/compressed-objects -``` - -启动Mino。 -``` -service minio start -``` - -现在你已经成功的让MinIO运行在ZFS上,你上传的对象都获得了磁盘级别的压缩功能,访问 http://localhost:9000。 - -#### 关闭MinIO服务 -```sh -service minio stop -``` \ No newline at end of file diff --git a/docs/zh_CN/bucket/lifecycle/README.md b/docs/zh_CN/bucket/lifecycle/README.md deleted file mode 100644 index 4b16e2b83..000000000 --- a/docs/zh_CN/bucket/lifecycle/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# 存储桶生命周期配置快速入门指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -在存储桶上启用对象的生命周期配置,可以设置在指定天数或指定日期后自动删除对象。 - -## 1. 前提条件 -- 安装MinIO - [MinIO快速入门指南](https://docs.min.io/cn/minio-quickstart-guide). -- 安装`mc` - [mc快速入门指南](https://docs.minio.io/cn/minio-client-quickstart-guide.html) - -## 2. 启用存储桶生命周期配置 - -- 创建一个存储桶的生命周期配置,该配置让前缀`old/`下的对象在`2020-01-01T00:00:00.000Z`过期,同时前缀`temp/`下的对象在7天后过期。 -- 使用`mc`启用存储桶的生命周期配置: - -```sh -$ mc ilm import play/testbucket -{ - "Rules": [ - { - "Expiration": { - "Date": "2020-01-01T00:00:00.000Z" - }, - "ID": "OldPictures", - "Filter": { - "Prefix": "old/" - }, - "Status": "Enabled" - }, - { - "Expiration": { - "Days": 7 - }, - "ID": "TempUploads", - "Filter": { - "Prefix": "temp/" - }, - "Status": "Enabled" - } - ] -} - -Lifecycle configuration imported successfully to `play/testbucket`. -``` - -- 列出当前的设置 -``` -$ mc ilm list play/testbucket - ID | Prefix | Enabled | Expiry | Date/Days | Transition | Date/Days | Storage-Class | Tags -------------|----------|------------|--------|--------------|--------------|------------------|------------------|------------------ -OldPictures | old/ | ✓ | ✓ | 1 Jan 2020 | ✗ | | | -------------|----------|------------|--------|--------------|--------------|------------------|------------------|------------------ -TempUploads | temp/ | ✓ | ✓ | 7 day(s) | ✗ | | | -------------|----------|------------|--------|--------------|--------------|------------------|------------------|------------------ -``` - -## 进一步探索 -- [MinIO | Golang Client API文档](https://docs.min.io/cn/golang-client-api-reference.html#SetBucketLifecycle) -- [对象生命周期管理](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) diff --git a/docs/zh_CN/bucket/notifications/README.md b/docs/zh_CN/bucket/notifications/README.md deleted file mode 100644 index 9a753dbf1..000000000 --- a/docs/zh_CN/bucket/notifications/README.md +++ /dev/null @@ -1,1409 +0,0 @@ -# MinIO存储桶通知指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) - -可以使用存储桶事件通知来监视存储桶中对象上发生的事件。 MinIO服务器支持的事件类型是 - -| Supported Event Types | | | -| :---------------------- | ------------------------------------------ | ------------------------ | -| `s3:ObjectCreated:Put` | `s3:ObjectCreated:CompleteMultipartUpload` | `s3:ObjectAccessed:Head` | -| `s3:ObjectCreated:Post` | `s3:ObjectRemoved:Delete` | | -| `s3:ObjectCreated:Copy` | `s3:ObjectAccessed:Get` | | - -使用诸如`mc`之类的客户端工具通过[`event`子命令](https://docs.min.io/cn/minio-client-complete-guide#events)设置和监听事件通知。也可以使用MinIO SDK [`BucketNotification` APIs](https://docs.min.io/cn/golang-client-api-reference#SetBucketNotification) 。MinIO发送的用于发布事件的通知消息是JSON格式的,JSON结构参考[这里](https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html)。 - -存储桶事件可以发布到以下目标: - -| 支持的通知目标 | | | -| :-------------------------------- | --------------------------- | ------------------------------- | -| [`AMQP`](#AMQP) | [`Redis`](#Redis) | [`MySQL`](#MySQL) | -| [`MQTT`](#MQTT) | [`NATS`](#NATS) | [`Apache Kafka`](#apache-kafka) | -| [`Elasticsearch`](#Elasticsearch) | [`PostgreSQL`](#PostgreSQL) | [`Webhooks`](#webhooks) | -| [`NSQ`](#NSQ) | | | - -## 前提条件 - -* 从[这里](https://docs.min.io/cn/minio-quickstart-guide)下载并安装MinIO Server。 -* 从[这里](https://docs.min.io/cn/minio-client-quickstart-guide)下载并安装MinIO Client。 - -``` -$ mc admin config get myminio | grep notify -notify_webhook publish bucket notifications to webhook endpoints -notify_amqp publish bucket notifications to AMQP endpoints -notify_kafka publish bucket notifications to Kafka endpoints -notify_mqtt publish bucket notifications to MQTT endpoints -notify_nats publish bucket notifications to NATS endpoints -notify_nsq publish bucket notifications to NSQ endpoints -notify_mysql publish bucket notifications to MySQL databases -notify_postgres publish bucket notifications to Postgres databases -notify_elasticsearch publish bucket notifications to Elasticsearch endpoints -notify_redis publish bucket notifications to Redis datastores -``` - -> 注意: -> - '\*' 结尾的参数是必填的. -> - '\*' 结尾的值,是参数的的默认值. -> - 当通过环境变量配置的时候, `:name` 可以通过这样 `MINIO_NOTIFY_WEBHOOK_ENABLE_` 的格式指定. - - -## 使用AMQP发布MinIO事件 - -从[这里](https://www.rabbitmq.com/)下载安装RabbitMQ。 - -### 第一步: 将AMQP endpoint添加到MinIO - -AMQP的配置信息位于`notify_amqp`这个顶级的key下。在这里为你的AMQP实例创建配置信息键值对。key是你的AMQP endpoint的名称,value是下面表格中列列的键值对集合。 - -``` -KEY: -notify_amqp[:name] 发布存储桶通知到AMQP endpoints - -ARGS: -url* (url) AMQP server endpoint, 例如. `amqp://myuser:mypassword@localhost:5672` -exchange (string) AMQP exchange名称 -exchange_type (string) AMQP exchange类型 -routing_key (string) 发布用的routing key -mandatory (on|off) 当设置为'off'的时候,忽略未发送的消息(默默的),默认是 'on' -durable (on|off) 当设置为'on'的时候,表示持久化队列,broker重启后也会存在, 默认是 'off' -no_wait (on|off) 当设置为'on'的时候,传递非阻塞的消息, 默认是 'off' -internal (on|off) 设置为'on'表示exchange是rabbitmq内部使用 -auto_deleted (on|off) 当没有使用者时,设置为'on'时自动删除队列 -delivery_mode (number) '1'代表非持久队列,'2'代表持久队列 -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释 -``` - -或者通过环境变量(配置说明参考上面) - -``` -KEY: -notify_amqp[:name] publish bucket notifications to AMQP endpoints - -ARGS: -MINIO_NOTIFY_AMQP_ENABLE* (on|off) enable notify_amqp target, default is 'off' -MINIO_NOTIFY_AMQP_URL* (url) AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672` -MINIO_NOTIFY_AMQP_EXCHANGE (string) name of the AMQP exchange -MINIO_NOTIFY_AMQP_EXCHANGE_TYPE (string) AMQP exchange type -MINIO_NOTIFY_AMQP_ROUTING_KEY (string) routing key for publishing -MINIO_NOTIFY_AMQP_MANDATORY (on|off) quietly ignore undelivered messages when set to 'off', default is 'on' -MINIO_NOTIFY_AMQP_DURABLE (on|off) persist queue across broker restarts when set to 'on', default is 'off' -MINIO_NOTIFY_AMQP_NO_WAIT (on|off) non-blocking message delivery when set to 'on', default is 'off' -MINIO_NOTIFY_AMQP_INTERNAL (on|off) set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges -MINIO_NOTIFY_AMQP_AUTO_DELETED (on|off) auto delete queue when set to 'on', when there are no consumers -MINIO_NOTIFY_AMQP_DELIVERY_MODE (number) set to '1' for non-persistent or '2' for persistent queue -MINIO_NOTIFY_AMQP_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_AMQP_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_AMQP_COMMENT (sentence) optionally add a comment to this setting -``` - -MinIO支持持久事件存储。持久存储将在AMQP broker离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -更新配置前, 可以使用`mc admin config get notify_amqp`命令获取`notify_amqp`的当前配置. - -```sh -$ mc admin config get myminio/ notify_amqp -notify_amqp:1 delivery_mode="0" exchange_type="" no_wait="off" queue_dir="" queue_limit="0" url="" auto_deleted="off" durable="off" exchange="" internal="off" mandatory="off" routing_key="" -``` - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似 `SQS ARNs: arn:minio:sqs::1:amqp`。 - -RabbitMQ的示例配置如下所示: - -```sh -$ mc admin config set myminio/ notify_amqp:1 exchange="bucketevents" exchange_type="fanout" mandatory="false" no_wait="false" url="amqp://myuser:mypassword@localhost:5672" auto_deleted="false" delivery_mode="0" durable="false" internal="false" routing_key="bucketlogs" -``` - -MinIO支持[RabbitMQ](https://www.rabbitmq.com/)中所有的exchange类型,这次我们采用 `fanout` exchange。 - -请注意, 根据你的需要,你可以添加任意多个AMQP server endpoint,只要提供AMQP实例的标识符(如上例中的“ 1”)和每个实例配置参数的信息即可。 - -### 第二步: 使用MinIO客户端启用bucket通知 - -如果一个JPEG图片上传到`myminio` server里的`images` 存储桶或者从桶中删除,一个存储桶事件通知就会被触发。 这里ARN值是`arn:minio:sqs:us-east-1:1:amqp`,想了解更多关于ARN的信息,请参考[AWS ARN](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 文档. - -``` -mc mb myminio/images -mc event add myminio/images arn:minio:sqs::1:amqp --suffix .jpg -mc event list myminio/images -arn:minio:sqs::1:amqp s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第三步:在RabbitMQ上进行验证 - -下面将要出场的python程序会在exchange `bucketevents` 上等待队列,并在控制台中输出事件通知。我们使用的是[Pika Python Client](https://www.rabbitmq.com/tutorials/tutorial-three-python.html) 来实现此功能。 - -```py -#!/usr/bin/env python -import pika - -connection = pika.BlockingConnection(pika.ConnectionParameters( - host='localhost')) -channel = connection.channel() - -channel.exchange_declare(exchange='bucketevents', - exchange_type='fanout') - -result = channel.queue_declare(exclusive=False) -queue_name = result.method.queue - -channel.queue_bind(exchange='bucketevents', - queue=queue_name) - -print(' [*] Waiting for logs. To exit press CTRL+C') - -def callback(ch, method, properties, body): - print(" [x] %r" % body) - -channel.basic_consume(callback, - queue=queue_name, - no_ack=False) - -channel.start_consuming() -``` - -执行示例中的python程序来观察RabbitMQ事件。 - -```py -python rabbit.py -``` - -另开一个terminal终端并上传一张JPEG图片到``images``存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -一旦上传完毕,你应该会通过RabbitMQ收到下面的事件通知。 - -```py -python rabbit.py -‘{“Records”:[{“eventVersion”:”2.0",”eventSource”:”aws:s3",”awsRegion”:”us-east-1",”eventTime”:”2016–09–08T22:34:38.226Z”,”eventName”:”s3:ObjectCreated:Put”,”userIdentity”:{“principalId”:”minio”},”requestParameters”:{“sourceIPAddress”:”10.1.10.150:44576"},”responseElements”:{},”s3":{“s3SchemaVersion”:”1.0",”configurationId”:”Config”,”bucket”:{“name”:”images”,”ownerIdentity”:{“principalId”:”minio”},”arn”:”arn:aws:s3:::images”},”object”:{“key”:”myphoto.jpg”,”size”:200436,”sequencer”:”147279EAF9F40933"}}}],”level”:”info”,”msg”:””,”time”:”2016–09–08T15:34:38–07:00"}\n -``` - - -## 使用MQTT发布MinIO事件 - -从 [这里](https://mosquitto.org/)安装MQTT Broker。 - -### 第一步: 添加MQTT endpoint到MinIO - -MQTT的配置信息位于`notify_mqtt`这个顶级的key下。在这里为你的MQTT实例创建配置信息键值对。key是你的MQTT endpoint的名称,value是下面表格中列的键值对集合。 - -``` -KEY: -notify_mqtt[:name] 发布存储桶通知到MQTT endpoints - -ARGS: -broker* (uri) MQTT服务 endpoint,例如 `tcp://localhost:1883` -topic* (string) 要发布的MQTT topic名称 -username (string) MQTT 用户名 -password (string) MQTT 密码 -qos (number) 设置服务质量的级别, 默认是 '0' -keep_alive_interval (duration) MQTT连接的保持活动间隔(s,m,h,d) -reconnect_interval (duration) MQTT连接的重新连接间隔(s,m,h,d) -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释 -``` - -或者通过环境变量(配置说明参考上面) - -``` -KEY: -notify_mqtt[:name] publish bucket notifications to MQTT endpoints - -ARGS: -MINIO_NOTIFY_MQTT_ENABLE* (on|off) enable notify_mqtt target, default is 'off' -MINIO_NOTIFY_MQTT_BROKER* (uri) MQTT server endpoint e.g. `tcp://localhost:1883` -MINIO_NOTIFY_MQTT_TOPIC* (string) name of the MQTT topic to publish -MINIO_NOTIFY_MQTT_USERNAME (string) MQTT username -MINIO_NOTIFY_MQTT_PASSWORD (string) MQTT password -MINIO_NOTIFY_MQTT_QOS (number) set the quality of service priority, defaults to '0' -MINIO_NOTIFY_MQTT_KEEP_ALIVE_INTERVAL (duration) keep-alive interval for MQTT connections in s,m,h,d -MINIO_NOTIFY_MQTT_RECONNECT_INTERVAL (duration) reconnect interval for MQTT connections in s,m,h,d -MINIO_NOTIFY_MQTT_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_MQTT_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_MQTT_COMMENT (sentence) optionally add a comment to this setting -``` - -MinIO支持持久事件存储。持久存储将在MQTT broker离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -更新配置前, 可以使用`mc admin config get`命令获取当前配置. - -```sh -$ mc admin config get myminio/ notify_mqtt -notify_mqtt:1 broker="" password="" queue_dir="" queue_limit="0" reconnect_interval="0s" keep_alive_interval="0s" qos="0" topic="" username="" -``` - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似 `SQS ARNs: arn:minio:sqs::1:mqtt`。 - -```sh -$ mc admin config set myminio notify_mqtt:1 broker="tcp://localhost:1883" password="" queue_dir="" queue_limit="0" reconnect_interval="0s" keep_alive_interval="0s" qos="1" topic="minio" username="" -``` - -更新完配置文件后,重启MinIO Server让配置生效。如果一切顺利,MinIO Server会在启动时输出一行信息,类似 `SQS ARNs: arn:minio:sqs:us-east-1:1:mqtt`。 - -MinIO支持任何支持MQTT 3.1或3.1.1的MQTT服务器,并且可以使用`tcp://`, `tls://`, or `ws://`通过TCP,TLS或Websocket连接,作为代理URL的方案。 更多信息,请参考 [Go Client](http://www.eclipse.org/paho/clients/golang/)。 - -请注意, 根据你的需要,你可以添加任意多个MQTT server endpoint,只要提供MQTT实例的标识符(如上例中的“ 1”)和每个实例配置参数的信息即可。 - -### 第二步: 使用MinIO客户端启用bucket通知 - -如果一个JPEG图片上传到`myminio` server里的`images` 存储桶或者从桶中删除,一个存储桶事件通知就会被触发。 这里ARN值是`arn:minio:sqs::1:mqtt`。 - -``` -mc mb myminio/images -mc event add myminio/images arn:minio:sqs::1:mqtt --suffix .jpg -mc event list myminio/images -arn:minio:sqs::1:amqp s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第三步:验证MQTT - -下面的python程序等待mqtt topic `/minio`,并在控制台上打印事件通知。 我们使用[paho-mqtt](https://pypi.python.org/pypi/paho-mqtt/)库来执行此操作。 - -```py -#!/usr/bin/env python3 -from __future__ import print_function -import paho.mqtt.client as mqtt - -# This is the Subscriber - -def on_connect(client, userdata, flags, rc): - print("Connected with result code "+str(rc)) - # qos level is set to 1 - client.subscribe("minio", 1) - -def on_message(client, userdata, msg): - print(msg.payload) - -# client_id is a randomly generated unique ID for the mqtt broker to identify the connection. -client = mqtt.Client(client_id="myclientid",clean_session=False) - -client.on_connect = on_connect -client.on_message = on_message - -client.connect("localhost",1883,60) -client.loop_forever() -``` - -执行这个python示例程序来观察MQTT事件。 - -```py -python mqtt.py -``` - -打开一个新的terminal终端并上传一张JPEG图片到``images`` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -一旦上传完毕,你应该会通过MQTT收到下面的事件通知。 - -```py -python mqtt.py -{“Records”:[{“eventVersion”:”2.0",”eventSource”:”aws:s3",”awsRegion”:”",”eventTime”:”2016–09–08T22:34:38.226Z”,”eventName”:”s3:ObjectCreated:Put”,”userIdentity”:{“principalId”:”minio”},”requestParameters”:{“sourceIPAddress”:”10.1.10.150:44576"},”responseElements”:{},”s3":{“s3SchemaVersion”:”1.0",”configurationId”:”Config”,”bucket”:{“name”:”images”,”ownerIdentity”:{“principalId”:”minio”},”arn”:”arn:aws:s3:::images”},”object”:{“key”:”myphoto.jpg”,”size”:200436,”sequencer”:”147279EAF9F40933"}}}],”level”:”info”,”msg”:””,”time”:”2016–09–08T15:34:38–07:00"} -``` - - -## 使用Elasticsearch发布MinIO事件 - -安装 [Elasticsearch](https://www.elastic.co/downloads/elasticsearch) 。 - -这个通知目标支持两种格式: _namespace_ 和 _access_。 - -如果使用的是 _namespace_ 格式, MinIO将桶中的对象与索引中的文档进行同步。对于MinIO中的每个事件,服务器都会使用事件中的存储桶和对象名称作为文档ID创建一个文档。事件的其他细节存储在document的正文中。因此,如果一个已经存在的对象在MinIO中被覆盖,在ES中的相对应的document也会被更新。如果一个对象被删除,相对应的document也会从index中删除。 - -如果使用的是 _access_ 格式,MinIO将事件作为document附加到ES的index中。对于每个事件,将带有事件详细信息的文档(文档的时间戳设置为事件的时间戳)附加到索引。这个文档的ID是由ES随机生成的。在 _access_ 格式下,不会有文档被删除或者修改。 - -下面的步骤展示的是在`namespace`格式下,如何使用通知目标。另一种格式和这个很类似,为了不让你们说我墨迹,就不再赘述了。 - - -### 第一步:确保至少满足最低要求 - -MinIO要求使用的是ES 5.X系统版本。如果使用的是低版本的ES,也没关系,ES官方支持升级迁移,详情请看[这里](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html)。 - -### 第二步:把ES集成到MinIO中 - -Elasticsearch的配置信息位于`notify_elasticsearch`这个顶级的key下。在这里为你的Elasticsearch实例创建配置信息键值对。key是你的Elasticsearch endpoint的名称,value是下面表格中列列的键值对集合。 - -``` -KEY: -notify_elasticsearch[:name] 发布存储桶通知到Elasticsearch endpoints - -ARGS: -url* (url) Elasticsearch服务器的地址,以及可选的身份验证信息 -index* (string) 存储/更新事件的Elasticsearch索引,索引是自动创建的 -format* (namespace*|access) 是`namespace` 还是 `access`,默认是 'namespace' -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释 -``` - -或者通过环境变量(配置说明参考上面) - -``` -KEY: -notify_elasticsearch[:name] publish bucket notifications to Elasticsearch endpoints - -ARGS: -MINIO_NOTIFY_ELASTICSEARCH_ENABLE* (on|off) enable notify_elasticsearch target, default is 'off' -MINIO_NOTIFY_ELASTICSEARCH_URL* (url) Elasticsearch server's address, with optional authentication info -MINIO_NOTIFY_ELASTICSEARCH_INDEX* (string) Elasticsearch index to store/update events, index is auto-created -MINIO_NOTIFY_ELASTICSEARCH_FORMAT* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace' -MINIO_NOTIFY_ELASTICSEARCH_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_ELASTICSEARCH_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_ELASTICSEARCH_COMMENT (sentence) optionally add a comment to this setting -``` - -比如: `http://localhost:9200` 或者带有授权信息的 `http://elastic:MagicWord@127.0.0.1:9200` - -MinIO支持持久事件存储。持久存储将在Elasticsearch broker离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -如果Elasticsearch启用了身份验证, 凭据可以通过格式为`PROTO://USERNAME:PASSWORD@ELASTICSEARCH_HOST:PORT`的`url`参数,提供给MinIO。 - -更新配置前,可以通过`mc admin config get`命令获取当前配置。 - -```sh -$ mc admin config get myminio/ notify_elasticsearch -notify_elasticsearch:1 queue_limit="0" url="" format="namespace" index="" queue_dir="" -``` - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似`SQS ARNs: arn:minio:sqs::1:elasticsearch`。 - -请注意, 根据你的需要,你可以添加任意多个ES server endpoint,只要提供ES实例的标识符(如上例中的“ 1”)和每个实例配置参数的信息即可。 - -### 第三步:使用MinIO客户端启用bucket通知 - -我们现在可以在一个叫`images`的存储桶上开启事件通知。一旦有文件被创建或者覆盖,一个新的ES的document会被创建或者更新到之前咱配的index里。如果一个已经存在的对象被删除,这个对应的document也会从index中删除。因此,这个ES index里的行,就映射着`images`存储桶里的`.jpg`对象。 - -要配置这种存储桶通知,我们需要用到前面步骤MinIO输出的ARN信息。更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -有了`mc`这个工具,这些配置信息很容易就能添加上。假设咱们的MinIO服务别名叫`myminio`,可执行下列脚本: - -``` -mc mb myminio/images -mc event add myminio/images arn:minio:sqs::1:elasticsearch --suffix .jpg -mc event list myminio/images -arn:minio:sqs::1:elasticsearch s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第四步:验证Elasticsearch - -上传一张JPEG图片到`images` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -使用curl查看`minio_events` index中的内容。 - -``` -$ curl "http://localhost:9200/minio_events/_search?pretty=true" -{ - "took" : 40, - "timed_out" : false, - "_shards" : { - "total" : 5, - "successful" : 5, - "failed" : 0 - }, - "hits" : { - "total" : 1, - "max_score" : 1.0, - "hits" : [ - { - "_index" : "minio_events", - "_type" : "event", - "_id" : "images/myphoto.jpg", - "_score" : 1.0, - "_source" : { - "Records" : [ - { - "eventVersion" : "2.0", - "eventSource" : "minio:s3", - "awsRegion" : "", - "eventTime" : "2017-03-30T08:00:41Z", - "eventName" : "s3:ObjectCreated:Put", - "userIdentity" : { - "principalId" : "minio" - }, - "requestParameters" : { - "sourceIPAddress" : "127.0.0.1:38062" - }, - "responseElements" : { - "x-amz-request-id" : "14B09A09703FC47B", - "x-minio-origin-endpoint" : "http://192.168.86.115:9000" - }, - "s3" : { - "s3SchemaVersion" : "1.0", - "configurationId" : "Config", - "bucket" : { - "name" : "images", - "ownerIdentity" : { - "principalId" : "minio" - }, - "arn" : "arn:aws:s3:::images" - }, - "object" : { - "key" : "myphoto.jpg", - "size" : 6474, - "eTag" : "a3410f4f8788b510d6f19c5067e60a90", - "sequencer" : "14B09A09703FC47B" - } - }, - "source" : { - "host" : "127.0.0.1", - "port" : "38062", - "userAgent" : "MinIO (linux; amd64) minio-go/2.0.3 mc/2017-02-15T17:57:25Z" - } - } - ] - } - } - ] - } -} -``` - -这个输出显示在ES中为这个事件创建了一个document。 - -这里我们可以看到这个document ID就是存储桶和对象的名称。如果用的是`access`格式,这个document ID就是由ES随机生成的。 - - -## 使用Redis发布MinIO事件 - -安装 [Redis](http://redis.io/download)。为了演示,我们将数据库密码设为"yoursecret"。 - -这种通知目标支持两种格式: _namespace_ 和 _access_。 - -如果用的是 _namespacee_ 格式,MinIO将存储桶里的对象同步成Redis hash中的条目。对于每一个条目,对应一个存储桶里的对象,其key都被设为"存储桶名称/对象名称",value都是一个有关这个MinIO对象的JSON格式的事件数据。如果对象更新或者删除,hash中对象的条目也会相应的更新或者删除。 - -如果使用的是 _access_ ,MinIO使用[RPUSH](https://redis.io/commands/rpush)将事件添加到list中。这个list中每一个元素都是一个JSON格式的list,这个list中又有两个元素,第一个元素是时间戳的字符串,第二个元素是一个含有在这个存储桶上进行操作的事件数据的JSON对象。在这种格式下,list中的元素不会更新或者删除。 - -下面的步骤展示如何在`namespace`和`access`格式下使用通知目标。 - -### 第一步:集成Redis到MinIO - -The MinIO server的配置文件以json格式存储在后端。Redis的配置信息位于`notify_redis`这个顶级的key下。在这里为你的Redis实例创建配置信息键值对。key是你的Redis endpoint的名称,value是下面表格中列的键值对集合。 - -``` -KEY: -notify_redis[:name] 发布存储桶通知到Redis - -ARGS: -address* (address) Redis服务器的地址. 例如: `localhost:6379` -key* (string) 存储/更新事件的Redis key, key会自动创建 -format* (namespace*|access) 是`namespace` 还是 `access`,默认是 'namespace' -password (string) Redis服务器的密码 -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释说明 -``` - -或者通过环境变量(配置说明参考上面) - -``` -KEY: -notify_redis[:name] publish bucket notifications to Redis datastores - -ARGS: -MINIO_NOTIFY_REDIS_ENABLE* (on|off) enable notify_redis target, default is 'off' -MINIO_NOTIFY_REDIS_KEY* (string) Redis key to store/update events, key is auto-created -MINIO_NOTIFY_REDIS_FORMAT* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace' -MINIO_NOTIFY_REDIS_PASSWORD (string) Redis server password -MINIO_NOTIFY_REDIS_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_REDIS_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_REDIS_COMMENT (sentence) optionally add a comment to this setting -``` - -MinIO支持持久事件存储。持久存储将在Redis broker离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -更新配置前,可以通过`mc admin config get`命令获取当前配置。 - -```sh -$ mc admin config get myminio/ notify_redis -notify_redis:1 address="" format="namespace" key="" password="" queue_dir="" queue_limit="0" -``` - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似`SQS ARNs: arn:minio:sqs::1:redis`。 - -```sh -$ mc admin config set myminio/ notify_redis:1 address="127.0.0.1:6379" format="namespace" key="bucketevents" password="yoursecret" queue_dir="" queue_limit="0" -``` - -请注意, 根据你的需要,你可以添加任意多个Redis server endpoint,只要提供Redis实例的标识符(如上例中的“ 1”)和每个实例配置参数的信息即可。 - -### 第二步: 使用MinIO客户端启用bucket通知 - -我们现在可以在一个叫`images`的存储桶上开启事件通知。当一个JPEG文件被创建或者覆盖,一个新的key会被创建,或者一个已经存在的key就会被更新到之前配置好的redis hash里。如果一个已经存在的对象被删除,这个对应的key也会从hash中删除。因此,这个Redis hash里的行,就映射着`images`存储桶里的`.jpg`对象。 - -要配置这种存储桶通知,我们需要用到前面步骤MinIO输出的ARN信息。更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -有了`mc`这个工具,这些配置信息很容易就能添加上。假设咱们的MinIO服务别名叫`myminio`,可执行下列脚本: - -``` -mc mb myminio/images -mc event add myminio/images arn:minio:sqs::1:redis --suffix .jpg -mc event list myminio/images -arn:minio:sqs::1:redis s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第三步:验证Redis - -启动`redis-cli`这个Redis客户端程序来检查Redis中的内容. 运行`monitor`Redis命令将会输出在Redis上执行的每个命令的。 - -``` -redis-cli -a yoursecret -127.0.0.1:6379> monitor -OK -``` - -打开一个新的terminal终端并上传一张JPEG图片到`images` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -在上一个终端中,你将看到MinIO在Redis上执行的操作: - -``` -127.0.0.1:6379> monitor -OK -1490686879.650649 [0 172.17.0.1:44710] "PING" -1490686879.651061 [0 172.17.0.1:44710] "HSET" "minio_events" "images/myphoto.jpg" "{\"Records\":[{\"eventVersion\":\"2.0\",\"eventSource\":\"minio:s3\",\"awsRegion\":\"\",\"eventTime\":\"2017-03-28T07:41:19Z\",\"eventName\":\"s3:ObjectCreated:Put\",\"userIdentity\":{\"principalId\":\"minio\"},\"requestParameters\":{\"sourceIPAddress\":\"127.0.0.1:52234\"},\"responseElements\":{\"x-amz-request-id\":\"14AFFBD1ACE5F632\",\"x-minio-origin-endpoint\":\"http://192.168.86.115:9000\"},\"s3\":{\"s3SchemaVersion\":\"1.0\",\"configurationId\":\"Config\",\"bucket\":{\"name\":\"images\",\"ownerIdentity\":{\"principalId\":\"minio\"},\"arn\":\"arn:aws:s3:::images\"},\"object\":{\"key\":\"myphoto.jpg\",\"size\":2586,\"eTag\":\"5d284463f9da279f060f0ea4d11af098\",\"sequencer\":\"14AFFBD1ACE5F632\"}},\"source\":{\"host\":\"127.0.0.1\",\"port\":\"52234\",\"userAgent\":\"MinIO (linux; amd64) minio-go/2.0.3 mc/2017-02-15T17:57:25Z\"}}]}" -``` - -在这我们可以看到MinIO在`minio_events`这个key上执行了`HSET`命令。 - -如果用的是`access`格式,那么`minio_events`就是一个list,MinIO就会调用`RPUSH`添加到list中。这个list的消费者会使用`BLPOP`从list的最左端删除list元素。 - - -## 使用NATS发布MinIO事件 - -安装 [NATS](http://nats.io/). - -### 第一步:集成NATS到MinIO - -MinIO支持持久事件存储。持久存储将在NATS broker离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -``` -KEY: -notify_nats[:name] 发布存储桶通知到NATS endpoints - -ARGS: -address* (address) NATS服务器地址,例如 '0.0.0.0:4222' -subject* (string) NATS 订阅的 subject -username (string) NATS 用户名 -password (string) NATS 密码 -token (string) NATS token -tls (on|off) 'on'代表启用TLS -tls_skip_verify (on|off) 跳过TLS证书验证, 默认是"on" (可信的) -ping_interval (duration) 客户端ping命令的时间间隔(s,m,h,d)。 默认禁止 -streaming (on|off) 设置为'on', 代表用streaming NATS 服务器 -streaming_async (on|off) 设置为'on', 代表启用异步发布 -streaming_max_pub_acks_in_flight (number) 无需等待ACK即可发布的消息数 -streaming_cluster_id (string) NATS streaming集群的唯一ID -cert_authority (string) 目标NATS服务器的证书链的路径 -client_cert (string) NATS mTLS身份验证的客户端证书 -client_key (string) NATS mTLS身份验证的客户端证书密钥 -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释说明 -``` - -或者通过环境变量(配置说明参考上面) -``` -KEY: -notify_nats[:name] publish bucket notifications to NATS endpoints - -ARGS: -MINIO_NOTIFY_NATS_ENABLE* (on|off) enable notify_nats target, default is 'off' -MINIO_NOTIFY_NATS_ADDRESS* (address) NATS server address e.g. '0.0.0.0:4222' -MINIO_NOTIFY_NATS_SUBJECT* (string) NATS subscription subject -MINIO_NOTIFY_NATS_USERNAME (string) NATS username -MINIO_NOTIFY_NATS_PASSWORD (string) NATS password -MINIO_NOTIFY_NATS_TOKEN (string) NATS token -MINIO_NOTIFY_NATS_TLS (on|off) set to 'on' to enable TLS -MINIO_NOTIFY_NATS_TLS_SKIP_VERIFY (on|off) trust server TLS without verification, defaults to "on" (verify) -MINIO_NOTIFY_NATS_PING_INTERVAL (duration) client ping commands interval in s,m,h,d. Disabled by default -MINIO_NOTIFY_NATS_STREAMING (on|off) set to 'on', to use streaming NATS server -MINIO_NOTIFY_NATS_STREAMING_ASYNC (on|off) set to 'on', to enable asynchronous publish -MINIO_NOTIFY_NATS_STREAMING_MAX_PUB_ACKS_IN_FLIGHT (number) number of messages to publish without waiting for ACKs -MINIO_NOTIFY_NATS_STREAMING_CLUSTER_ID (string) unique ID for NATS streaming cluster -MINIO_NOTIFY_NATS_CERT_AUTHORITY (string) path to certificate chain of the target NATS server -MINIO_NOTIFY_NATS_CLIENT_CERT (string) client cert for NATS mTLS auth -MINIO_NOTIFY_NATS_CLIENT_KEY (string) client cert key for NATS mTLS auth -MINIO_NOTIFY_NATS_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_NATS_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_NATS_COMMENT (sentence) optionally add a comment to this setting -``` - -更新配置前, 使用`mc admin config get` 命令获取当前配置. - -```sh -$ mc admin config get myminio/ notify_nats -notify_nats:1 password="yoursecret" streaming_max_pub_acks_in_flight="10" subject="" address="0.0.0.0:4222" token="" username="yourusername" ping_interval="0" queue_limit="0" tls="off" tls_skip_verify="off" streaming_async="on" queue_dir="" streaming_cluster_id="test-cluster" streaming_enable="on" -``` - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。`bucketevents` 是NATS在这个例子中使用的subject. - -```sh -$ mc admin config set myminio notify_nats:1 password="yoursecret" streaming_max_pub_acks_in_flight="10" subject="" address="0.0.0.0:4222" token="" username="yourusername" ping_interval="0" queue_limit="0" tls="off" streaming_async="on" queue_dir="" streaming_cluster_id="test-cluster" streaming_enable="on" -``` - -MinIO server还支持[NATS Streaming模式](http://nats.io/documentation/streaming/nats-streaming-intro/) ,该模式提供一些附加功能, 比如`At-least-once-delivery`, `Publisher rate limiting`。要配置MinIO server发送通知到NATS Streaming 服务器, 请参考上面的更新MinIO配置. - -更多关于`cluster_id`, `client_id`的信息,请参考 [NATS documentation](https://github.com/nats-io/nats-streaming-server/blob/master/README.md). 点击[这里](https://github.com/nats-io/stan.go#publisher-rate-limiting)查看关于`maxPubAcksInflight`的说明. - -### 第二步: 使用MinIO客户端启用bucket通知 - -我们现在可以在一个叫`images`的存储桶上开启事件通知,一旦``myminio`` server上有文件 从``images``存储桶里删除或者上传到存储桶中,事件即被触发。在这里,ARN的值是`arn:minio:sqs::1:nats`。 更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -``` -mc mb myminio/images -mc event add myminio/images arn:minio:sqs::1:nats --suffix .jpg -mc event list myminio/images -arn:minio:sqs::1:nats s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第三步:验证NATS - -如果你用的是NATS server,请查看下面的示例程序来记录添加到NATS的存储桶通知。 - -```go -package main - -// Import Go and NATS packages -import ( - "log" - "runtime" - - "github.com/nats-io/nats.go" -) - -func main() { - - // Create server connection - natsConnection, _ := nats.Connect("nats://yourusername:yoursecret@localhost:4222") - log.Println("Connected") - - // Subscribe to subject - log.Printf("Subscribing to subject 'bucketevents'\n") - natsConnection.Subscribe("bucketevents", func(msg *nats.Msg) { - - // Handle the message - log.Printf("Received message '%s\n", string(msg.Data)+"'") - }) - - // Keep the connection alive - runtime.Goexit() -} -``` - -``` -go run nats.go -2016/10/12 06:39:18 Connected -2016/10/12 06:39:18 Subscribing to subject 'bucketevents' -``` - -打开一个新的terminal终端并上传一张JPEG图片到`images` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -`nats.go`示例程序将事件通知打印到控制台。 - -``` -go run nats.go -2016/10/12 06:51:26 Connected -2016/10/12 06:51:26 Subscribing to subject 'bucketevents' -2016/10/12 06:51:33 Received message '{"EventType":"s3:ObjectCreated:Put","Key":"images/myphoto.jpg","Records":[{"eventVersion":"2.0","eventSource":"aws:s3","awsRegion":"","eventTime":"2016-10-12T13:51:33Z","eventName":"s3:ObjectCreated:Put","userIdentity":{"principalId":"minio"},"requestParameters":{"sourceIPAddress":"[::1]:57106"},"responseElements":{},"s3":{"s3SchemaVersion":"1.0","configurationId":"Config","bucket":{"name":"images","ownerIdentity":{"principalId":"minio"},"arn":"arn:aws:s3:::images"},"object":{"key":"myphoto.jpg","size":56060,"eTag":"1d97bf45ecb37f7a7b699418070df08f","sequencer":"147CCD1AE054BFD0"}}}],"level":"info","msg":"","time":"2016-10-12T06:51:33-07:00"} -``` - -如果你用的是NATS Streaming server,请查看下面的示例程序来记录添加到NATS的存储桶通知。 - -```go -package main - -// Import Go and NATS packages -import ( - "fmt" - "runtime" - - "github.com/nats-io/stan.go" -) - -func main() { - - var stanConnection stan.Conn - - subscribe := func() { - fmt.Printf("Subscribing to subject 'bucketevents'\n") - stanConnection.Subscribe("bucketevents", func(m *stan.Msg) { - - // Handle the message - fmt.Printf("Received a message: %s\n", string(m.Data)) - }) - } - - - stanConnection, _ = stan.Connect("test-cluster", "test-client", stan.NatsURL("nats://yourusername:yoursecret@0.0.0.0:4222"), stan.SetConnectionLostHandler(func(c stan.Conn, _ error) { - go func() { - for { - // Reconnect if the connection is lost. - if stanConnection == nil || stanConnection.NatsConn() == nil || !stanConnection.NatsConn().IsConnected() { - stanConnection, _ = stan.Connect("test-cluster", "test-client", stan.NatsURL("nats://yourusername:yoursecret@0.0.0.0:4222"), stan.SetConnectionLostHandler(func(c stan.Conn, _ error) { - if c.NatsConn() != nil { - c.NatsConn().Close() - } - _ = c.Close() - })) - if stanConnection != nil { - subscribe() - } - - } - } - - }() - })) - - // Subscribe to subject - subscribe() - - // Keep the connection alive - runtime.Goexit() -} - -``` - -``` -go run nats.go -2017/07/07 11:47:40 Connected -2017/07/07 11:47:40 Subscribing to subject 'bucketevents' -``` - -打开一个新的terminal终端并上传一张JPEG图片到``images`` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -`nats.go`示例程序将事件通知打印到控制台。 - -``` -Received a message: {"EventType":"s3:ObjectCreated:Put","Key":"images/myphoto.jpg","Records":[{"eventVersion":"2.0","eventSource":"minio:s3","awsRegion":"","eventTime":"2017-07-07T18:46:37Z","eventName":"s3:ObjectCreated:Put","userIdentity":{"principalId":"minio"},"requestParameters":{"sourceIPAddress":"192.168.1.80:55328"},"responseElements":{"x-amz-request-id":"14CF20BD1EFD5B93","x-minio-origin-endpoint":"http://127.0.0.1:9000"},"s3":{"s3SchemaVersion":"1.0","configurationId":"Config","bucket":{"name":"images","ownerIdentity":{"principalId":"minio"},"arn":"arn:aws:s3:::images"},"object":{"key":"myphoto.jpg","size":248682,"eTag":"f1671feacb8bbf7b0397c6e9364e8c92","contentType":"image/jpeg","userDefined":{"content-type":"image/jpeg"},"versionId":"1","sequencer":"14CF20BD1EFD5B93"}},"source":{"host":"192.168.1.80","port":"55328","userAgent":"MinIO (linux; amd64) minio-go/2.0.4 mc/DEVELOPMENT.GOGET"}}],"level":"info","msg":"","time":"2017-07-07T11:46:37-07:00"} -``` - - -## 使用PostgreSQL发布MinIO事件 - -> 注意:在版本RELEASE.2020-04-10T03-34-42Z之前的PostgreSQL通知用于支持以下选项: -> -> ``` -> host (hostname) Postgres server hostname (used only if `connection_string` is empty) -> port (port) Postgres server port, defaults to `5432` (used only if `connection_string` is empty) -> username (string) database username (used only if `connection_string` is empty) -> password (string) database password (used only if `connection_string` is empty) -> database (string) database name (used only if `connection_string` is empty) -> ``` -> -> 这些现在已经弃用, 如果你打算升级到*RELEASE.2020-04-10T03-34-42Z*之后的版本请确保 -> 仅使用*connection_string*选项迁移.一旦所有服务器都升级完成,请使用以下命令更新现有的通知目标完成迁移。 -> -> ``` -> mc admin config set myminio/ notify_postgres[:name] connection_string="host=hostname port=2832 username=psqluser password=psqlpass database=bucketevents" -> ``` -> -> 请确保执行此步骤,否则将无法执行PostgreSQL通知目标, -> 服务器升级/重启后,控制台上会显示一条错误消息,请务必遵循上述说明。 -> 如有其他问题,请加入我们的 https://slack.min.io - -安装 [PostgreSQL](https://www.postgresql.org/) 数据库。为了演示,我们将"postgres"用户的密码设为`password`,并且创建了一个`minio_events`数据库来存储事件信息。 - -这个通知目标支持两种格式: _namespace_ 和 _access_。 - -如果使用的是 _namespace_ 格式,MinIO将存储桶里的对象同步成数据库表中的行。每一行有两列:key和value。key是这个对象的存储桶名字加上对象名,value都是一个有关这个MinIO对象的JSON格式的事件数据。如果对象更新或者删除,表中相应的行也会相应的更新或者删除。 - -如果使用的是 _access_,MinIO将将事件添加到表里,行有两列:event_time 和 event_data。event_time是事件在MinIO server里发生的时间,event_data是有关这个MinIO对象的JSON格式的事件数据。在这种格式下,不会有行会被删除或者修改。 - -下面的步骤展示的是如何在`namespace`格式下使用通知目标,`_access_`差不多,不再赘述,我相信你可以触类旁通,举一反三,不要让我失望哦。 - -### 第一步:确保确保至少满足最低要求 - -MinIO要求PostgresSQL9.5版本及以上。 MinIO用了PostgreSQL9.5引入的[`INSERT ON CONFLICT`](https://www.postgresql.org/docs/9.5/static/sql-insert.html#SQL-ON-CONFLICT) (aka UPSERT) 特性,以及9.4引入的 [JSONB](https://www.postgresql.org/docs/9.4/static/datatype-json.html) 数据类型。 - -### 第二步:集成PostgreSQL到MinIO - -PostgreSQL的配置信息位于`notify_postgresql`这个顶级的key下。在这里为你的PostgreSQL实例创建配置信息键值对。key是你的PostgreSQL endpoint的名称,value是下面表格中列列的键值对集合。 - -``` -KEY: -notify_postgres[:name] 发布存储桶通知到Postgres数据库 - -ARGS: -connection_string* (string) Postgres server的连接字符串,例如 "host=localhost port=5432 dbname=minio_events user=postgres password=password sslmode=disable" -table* (string) 存储/更新事件的数据库表名, 表会自动被创建 -format* (namespace*|access) 'namespace'或者'access', 默认是'namespace' -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释说明 -``` - -或者通过环境变量(说明详见上面) -``` -KEY: -notify_postgres[:name] publish bucket notifications to Postgres databases - -ARGS: -MINIO_NOTIFY_POSTGRES_ENABLE* (on|off) enable notify_postgres target, default is 'off' -MINIO_NOTIFY_POSTGRES_CONNECTION_STRING* (string) Postgres server connection-string e.g. "host=localhost port=5432 dbname=minio_events user=postgres password=password sslmode=disable" -MINIO_NOTIFY_POSTGRES_TABLE* (string) DB table name to store/update events, table is auto-created -MINIO_NOTIFY_POSTGRES_FORMAT* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace' -MINIO_NOTIFY_POSTGRES_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_POSTGRES_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_POSTGRES_COMMENT (sentence) optionally add a comment to this setting -``` - -MinIO支持持久事件存储。持久存储将在PostgreSQL连接离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -注意这里为了演示, 我们禁止了SSL. 处于安全起见, 不推荐用于生产. -更新配置前, 使用`mc admin config get`命令获取当前配置。 - -```sh -$ mc admin config get myminio notify_postgres -notify_postgres:1 queue_dir="" connection_string="" queue_limit="0" table="" format="namespace" -``` - -Use `mc admin config set`命令更新完配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似 `SQS ARNs: arn:minio:sqs::1:postgresql`。 - -```sh -$ mc admin config set myminio notify_postgres:1 connection_string="host=localhost port=5432 dbname=minio_events user=postgres password=password sslmode=disable" table="bucketevents" format="namespace" -``` - -请注意, 根据你的需要,你可以添加任意多个PostgreSQL server endpoint,只要提供PostgreSQL实例的标识符(如上例中的“ 1”)和每个实例配置参数的信息即可。 - -### 第三步:使用MinIO客户端启用bucket通知 - -我们现在可以在一个叫`images`的存储桶上开启事件通知,一旦上有文件上传到存储桶中,PostgreSQL中会insert一条新的记录或者一条已经存在的记录会被update,如果一个存在对象被删除,一条对应的记录也会从PostgreSQL表中删除。因此,PostgreSQL表中的行,对应的就是存储桶里的一个对象。 - -要配置这种存储桶通知,我们需要用到前面步骤中MinIO输出的ARN信息。更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -有了`mc`这个工具,这些配置信息很容易就能添加上。假设MinIO服务别名叫`myminio`,可执行下列脚本: - -``` -# Create bucket named `images` in myminio -mc mb myminio/images -# Add notification configuration on the `images` bucket using the MySQL ARN. The --suffix argument filters events. -mc event add myminio/images arn:minio:sqs::1:postgresql --suffix .jpg -# Print out the notification configuration on the `images` bucket. -mc event list myminio/images -mc event list myminio/images -arn:minio:sqs::1:postgresql s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第四步:验证PostgreSQL - -打开一个新的terminal终端并上传一张JPEG图片到``images`` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -打开一个PostgreSQL终端列出表 `bucketevents` 中所有的记录。 - -``` -$ psql -h 127.0.0.1 -U postgres -d minio_events -minio_events=# select * from bucketevents; - -key | value ---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - images/myphoto.jpg | {"Records": [{"s3": {"bucket": {"arn": "arn:aws:s3:::images", "name": "images", "ownerIdentity": {"principalId": "minio"}}, "object": {"key": "myphoto.jpg", "eTag": "1d97bf45ecb37f7a7b699418070df08f", "size": 56060, "sequencer": "147CE57C70B31931"}, "configurationId": "Config", "s3SchemaVersion": "1.0"}, "awsRegion": "", "eventName": "s3:ObjectCreated:Put", "eventTime": "2016-10-12T21:18:20Z", "eventSource": "aws:s3", "eventVersion": "2.0", "userIdentity": {"principalId": "minio"}, "responseElements": {}, "requestParameters": {"sourceIPAddress": "[::1]:39706"}}]} -(1 row) -``` - - - -## 使用MySQL发布MinIO事件 - -> 注意:在版本RELEASE.2020-04-10T03-34-42Z之前的MySQL通知用于支持以下选项: -> -> ``` -> host (hostname) MySQL server hostname (used only if `dsn_string` is empty) -> port (port) MySQL server port (used only if `dsn_string` is empty) -> username (string) database username (used only if `dsn_string` is empty) -> password (string) database password (used only if `dsn_string` is empty) -> database (string) database name (used only if `dsn_string` is empty) -> ``` -> -> 这些现在已经弃用, 如果你打算升级到*RELEASE.2020-04-10T03-34-42Z*之后的版本请确保 -> 仅使用*dsn_string*选项迁移. 一旦所有服务器都升级完成,请使用以下命令更新现有的通知目标完成迁移 -> -> ``` -> mc admin config set myminio/ notify_mysql[:name] dsn_string="mysqluser:mysqlpass@tcp(localhost:2832)/bucketevents" -> ``` -> -> 请确保执行此步骤, 否则将无法执行MySQL通知目标, -> 服务器升级/重启后,控制台上会显示一条错误消息,请务必遵循上述说明。 -> 如有其他问题,请加入我们的 https://slack.min.io - -安装 [MySQL](https://dev.mysql.com/downloads/mysql/). 为了演示,我们将"root"用户的密码设为`password`,并且创建了一个`miniodb`数据库来存储事件信息。 - -这个通知目标支持两种格式: _namespace_ 和 _access_。 - -如果使用的是 _namespace_ 格式,MinIO将存储桶里的对象同步成数据库表中的行。每一行有两列:key_name和value。key_name是这个对象的存储桶名字加上对象名,value都是一个有关这个MinIO对象的JSON格式的事件数据。如果对象更新或者删除,表中相应的行也会相应的更新或者删除。 - -如果使用的是 _access_,MinIO将将事件添加到表里,行有两列:event_time 和 event_data。event_time是事件在MinIO server里发生的时间,event_data是有关这个MinIO对象的JSON格式的事件数据。在这种格式下,不会有行会被删除或者修改。 - -下面的步骤展示的是如何在`namespace`格式下使用通知目标,`_access_`差不多,不再赘述。 - -### 第一步:确保确保至少满足最低要求 - -MinIO要求MySQL 版本 5.7.8及以上,MinIO使用了MySQL5.7.8版本引入的 [JSON](https://dev.mysql.com/doc/refman/5.7/en/json.html) 数据类型。我们使用的是MySQL5.7.17进行的测试。 - -### 第二步:集成MySQL到MinIO - -MySQL配置位于 `notify_mysql`key下. 在这里为你的PostgreSQL实例创建配置信息键值对。key是你的MySQL endpoint的名称,value是下面表格中列列的键值对集合。 - -``` -KEY: -notify_mysql[:name] 发布存储桶通知到MySQL数据库. 当需要多个MySQL server endpoint时,可以为每个配置添加用户指定的“name”(例如"notify_mysql:myinstance"). - -ARGS: -dsn_string* (string) MySQL数据源名称连接字符串,例如 ":@tcp(:)/" -table* (string) 存储/更新事件的数据库表名, 表会自动被创建 -format* (namespace*|access) 'namespace'或者'access', 默认是'namespace' -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释说明 -``` - -或者通过环境变量(说明详见上面) -``` -KEY: -notify_mysql[:name] publish bucket notifications to MySQL databases - -ARGS: -MINIO_NOTIFY_MYSQL_ENABLE* (on|off) enable notify_mysql target, default is 'off' -MINIO_NOTIFY_MYSQL_DSN_STRING* (string) MySQL data-source-name connection string e.g. ":@tcp(:)/" -MINIO_NOTIFY_MYSQL_TABLE* (string) DB table name to store/update events, table is auto-created -MINIO_NOTIFY_MYSQL_FORMAT* (namespace*|access) 'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace' -MINIO_NOTIFY_MYSQL_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_MYSQL_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_MYSQL_COMMENT (sentence) optionally add a comment to this setting -``` - -`dsn_string`是必须的,并且格式为 `":@tcp(:)/"` - -MinIO支持持久事件存储。持久存储将在MySQL连接离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -更新配置前, 可以使用`mc admin config get`命令获取当前配置. - -```sh -$ mc admin config get myminio/ notify_mysql -notify_mysql:myinstance enable=off format=namespace host= port= username= password= database= dsn_string= table= queue_dir= queue_limit=0 -``` - -使用带有`dsn_string`参数的`mc admin config set`的命令更新MySQL的通知配置: - -```sh -$ mc admin config set myminio notify_mysql:myinstance table="minio_images" dsn_string="root:xxxx@tcp(172.17.0.1:3306)/miniodb" -``` - -请注意, 根据你的需要,你可以添加任意多个MySQL server endpoint,只要提供MySQL实例的标识符(如上例中的"myinstance")和每个实例配置参数的信息即可。 - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似 `SQS ARNs: arn:minio:sqs::myinstance:mysql`。 - -### 第三步:使用MinIO客户端启用bucket通知 - -我们现在可以在一个叫`images`的存储桶上开启事件通知,一旦上有文件上传到存储桶中,MySQL中会insert一条新的记录或者一条已经存在的记录会被update,如果一个存在对象被删除,一条对应的记录也会从MySQL表中删除。因此,MySQL表中的行,对应的就是存储桶里的一个对象。 - -要配置这种存储桶通知,我们需要用到前面步骤MinIO输出的ARN信息。更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -有了`mc`这个工具,这些配置信息很容易就能添加上。假设咱们的MinIO服务别名叫`myminio`,可执行下列脚本: - -``` -# Create bucket named `images` in myminio -mc mb myminio/images -# Add notification configuration on the `images` bucket using the MySQL ARN. The --suffix argument filters events. -mc event add myminio/images arn:minio:sqs::myinstance:mysql --suffix .jpg -# Print out the notification configuration on the `images` bucket. -mc event list myminio/images -arn:minio:sqs::myinstance:mysql s3:ObjectCreated:*,s3:ObjectRemoved:*,s3:ObjectAccessed:* Filter: suffix=”.jpg” -``` - -### 第四步:验证MySQL - -打开一个新的terminal终端并上传一张JPEG图片到`images` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -打开一个MySQL终端列出表 `minio_images` 中所有的记录。 - -``` -$ mysql -h 172.17.0.1 -P 3306 -u root -p miniodb -mysql> select * from minio_images; -+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| key_name | value | -+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| images/myphoto.jpg | {"Records": [{"s3": {"bucket": {"arn": "arn:aws:s3:::images", "name": "images", "ownerIdentity": {"principalId": "minio"}}, "object": {"key": "myphoto.jpg", "eTag": "467886be95c8ecfd71a2900e3f461b4f", "size": 26, "sequencer": "14AC59476F809FD3"}, "configurationId": "Config", "s3SchemaVersion": "1.0"}, "awsRegion": "", "eventName": "s3:ObjectCreated:Put", "eventTime": "2017-03-16T11:29:00Z", "eventSource": "aws:s3", "eventVersion": "2.0", "userIdentity": {"principalId": "minio"}, "responseElements": {"x-amz-request-id": "14AC59476F809FD3", "x-minio-origin-endpoint": "http://192.168.86.110:9000"}, "requestParameters": {"sourceIPAddress": "127.0.0.1:38260"}}]} | -+--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -1 row in set (0.01 sec) - -``` - - - -## 使用Kafka发布MinIO事件 - -安装[ Apache Kafka](http://kafka.apache.org/). - -### 第一步:确保确保至少满足最低要求 - -MinIO要求Kafka版本0.10或者0.9.MinIO内部使用了 [Shopify/sarama](https://github.com/Shopify/sarama/) 库,因此需要和该库有同样的版本兼容性。 - -###第二步:集成Kafka到MinIO - -MinIO支持持久事件存储。持久存储将在kafka broker离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -``` -KEY: -notify_kafka[:name] 发布存储桶通知到Kafka endpoints - -ARGS: -brokers* (csv) 逗号分隔的Kafka broker地址列表 -topic (string) 用于存储桶通知的Kafka topic -sasl_username (string) SASL/PLAIN或者SASL/SCRAM身份验证的用户名 -sasl_password (string) SASL/PLAIN或者SASL/SCRAM身份验证的密码 -sasl_mechanism (string) sasl认证机制, 默认是'PLAIN' -tls_client_auth (string) clientAuth确定TLS客户端身份验证的Kafka服务器策略 -sasl (on|off) 设置为'on'代表启用 SASL身份验证 -tls (on|off) 设置为'on'代表启用TLS -tls_skip_verify (on|off) 跳过TLS证书验证, 默认是"on" (可信的) -client_tls_cert (path) 用于mTLS身份验证的客户端证书的路径 -client_tls_key (path) mTLS身份验证的客户端密钥的路径 -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -version (string) 指定 Kafka集群的版本, 例如 '2.2.0' -comment (sentence) 可选的注释说明 -``` - -或者通过环境变量(说明详见上面) -``` -KEY: -notify_kafka[:name] publish bucket notifications to Kafka endpoints - -ARGS: -MINIO_NOTIFY_KAFKA_ENABLE* (on|off) enable notify_kafka target, default is 'off' -MINIO_NOTIFY_KAFKA_BROKERS* (csv) comma separated list of Kafka broker addresses -MINIO_NOTIFY_KAFKA_TOPIC (string) Kafka topic used for bucket notifications -MINIO_NOTIFY_KAFKA_SASL_USERNAME (string) username for SASL/PLAIN or SASL/SCRAM authentication -MINIO_NOTIFY_KAFKA_SASL_PASSWORD (string) password for SASL/PLAIN or SASL/SCRAM authentication -MINIO_NOTIFY_KAFKA_SASL_MECHANISM (plain*|sha256|sha512) sasl authentication mechanism, default 'plain' -MINIO_NOTIFY_KAFKA_TLS_CLIENT_AUTH (string) clientAuth determines the Kafka server's policy for TLS client auth -MINIO_NOTIFY_KAFKA_SASL (on|off) set to 'on' to enable SASL authentication -MINIO_NOTIFY_KAFKA_TLS (on|off) set to 'on' to enable TLS -MINIO_NOTIFY_KAFKA_TLS_SKIP_VERIFY (on|off) trust server TLS without verification, defaults to "on" (verify) -MINIO_NOTIFY_KAFKA_CLIENT_TLS_CERT (path) path to client certificate for mTLS auth -MINIO_NOTIFY_KAFKA_CLIENT_TLS_KEY (path) path to client key for mTLS auth -MINIO_NOTIFY_KAFKA_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_KAFKA_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_KAFKA_COMMENT (sentence) optionally add a comment to this setting -MINIO_NOTIFY_KAFKA_VERSION (string) specify the version of the Kafka cluster e.g. '2.2.0' -``` - -更新配置前, 使用`mc admin config get`命令获取当前配置 - -```sh -$ mc admin config get myminio/ notify_kafka -notify_kafka:1 tls_skip_verify="off" queue_dir="" queue_limit="0" sasl="off" sasl_password="" sasl_username="" tls_client_auth="0" tls="off" brokers="" topic="" client_tls_cert="" client_tls_key="" version="" -``` - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似 `SQS ARNs: arn:minio:sqs::1:kafka`。`bucketevents`是kafka在此示例中使用的主题。 - -```sh -$ mc admin config set myminio notify_kafka:1 tls_skip_verify="off" queue_dir="" queue_limit="0" sasl="off" sasl_password="" sasl_username="" tls_client_auth="0" tls="off" client_tls_cert="" client_tls_key="" brokers="localhost:9092,localhost:9093" topic="bucketevents" version="" -``` - -### 第三步:使用MinIO客户端启用bucket通知 - - -我们现在可以在一个叫`images`的存储桶上开启事件通知,一旦上有文件上传到存储桶中,事件将被触发。在这里,ARN的值是``arn:minio:sqs:us-east-1:1:kafka``。更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -``` -mc mb myminio/images -mc event add myminio/images arn:minio:sqs::1:kafka --suffix .jpg -mc event list myminio/images -arn:minio:sqs::1:kafka s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第四步:验证Kafka - -我们使用 [kafkacat](https://github.com/edenhill/kafkacat) 将所有的通知输出到控制台。 - -``` -kafkacat -C -b localhost:9092 -t bucketevents -``` - -打开一个新的terminal终端并上传一张JPEG图片到``images`` 存储桶。 - -``` -mc cp myphoto.jpg myminio/images -``` - -`kafkacat` 输出事件通知到控制台。 - -``` -kafkacat -b localhost:9092 -t bucketevents -{ - "EventName": "s3:ObjectCreated:Put", - "Key": "images/myphoto.jpg", - "Records": [ - { - "eventVersion": "2.0", - "eventSource": "minio:s3", - "awsRegion": "", - "eventTime": "2019-09-10T17:41:54Z", - "eventName": "s3:ObjectCreated:Put", - "userIdentity": { - "principalId": "AKIAIOSFODNN7EXAMPLE" - }, - "requestParameters": { - "accessKey": "AKIAIOSFODNN7EXAMPLE", - "region": "", - "sourceIPAddress": "192.168.56.192" - }, - "responseElements": { - "x-amz-request-id": "15C3249451E12784", - "x-minio-deployment-id": "751a8ba6-acb2-42f6-a297-4cdf1cf1fa4f", - "x-minio-origin-endpoint": "http://192.168.97.83:9000" - }, - "s3": { - "s3SchemaVersion": "1.0", - "configurationId": "Config", - "bucket": { - "name": "images", - "ownerIdentity": { - "principalId": "AKIAIOSFODNN7EXAMPLE" - }, - "arn": "arn:aws:s3:::images" - }, - "object": { - "key": "myphoto.jpg", - "size": 6474, - "eTag": "430f89010c77aa34fc8760696da62d08-1", - "contentType": "image/jpeg", - "userMetadata": { - "content-type": "image/jpeg" - }, - "versionId": "1", - "sequencer": "15C32494527B46C5" - } - }, - "source": { - "host": "192.168.56.192", - "port": "", - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0" - } - } - ] -} -``` - - - -## 使用Webhook发布MinIO事件 - -[Webhooks](https://en.wikipedia.org/wiki/Webhook) 采用推的方式获取数据,而不是一直去拉取。 - -### 第一步:集成Webhook到MinIO - -MinIO支持持久事件存储。持久存储将在webhook离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -``` -KEY: -notify_webhook[:name] 发布存储桶通知到webhook endpoints - -ARGS: -endpoint* (url) webhook server endpoint,例如 http://localhost:8080/minio/events -auth_token (string) opaque token或者JWT authorization token -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -client_cert (string) Webhook的mTLS身份验证的客户端证书 -client_key (string) Webhook的mTLS身份验证的客户端证书密钥 -comment (sentence) 可选的注释说明 -``` - -或者通过环境变量(说明参见上面) -``` -KEY: -notify_webhook[:name] publish bucket notifications to webhook endpoints - -ARGS: -MINIO_NOTIFY_WEBHOOK_ENABLE* (on|off) enable notify_webhook target, default is 'off' -MINIO_NOTIFY_WEBHOOK_ENDPOINT* (url) webhook server endpoint e.g. http://localhost:8080/minio/events -MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN (string) opaque string or JWT authorization token -MINIO_NOTIFY_WEBHOOK_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_WEBHOOK_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_WEBHOOK_COMMENT (sentence) optionally add a comment to this setting -MINIO_NOTIFY_WEBHOOK_CLIENT_CERT (string) client cert for Webhook mTLS auth -MINIO_NOTIFY_WEBHOOK_CLIENT_KEY (string) client cert key for Webhook mTLS auth -``` - -```sh -$ mc admin config get myminio/ notify_webhook -notify_webhook:1 endpoint="" auth_token="" queue_limit="0" queue_dir="" client_cert="" client_key="" -``` - -用`mc admin config set` 命令更新配置. 在这endpoint是监听webhook通知的服务. 保存配置文件并重启MinIO服务让配配置生效. 注意一下,在重启MinIO时,这个endpoint必须是启动并且可访问到。 - -```sh -$ mc admin config set myminio notify_webhook:1 queue_limit="0" endpoint="http://localhost:3000" queue_dir="" -``` - -### 第二步:使用MinIO客户端启用bucket通知 - -我们现在可以在一个叫`images`的存储桶上开启事件通知,一旦上有文件上传到存储桶中,事件将被触发。在这里,ARN的值是`arn:minio:sqs::1:webhook`。更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -``` -mc mb myminio/images -mc mb myminio/images-thumbnail -mc event add myminio/images arn:minio:sqs::1:webhook --event put --suffix .jpg -``` - -验证事件通知是否配置正确: - -``` -mc event list myminio/images -``` - -你应该可以收到如下的响应: - -``` -arn:minio:sqs::1:webhook s3:ObjectCreated:* Filter: suffix=".jpg" -``` - -### 第三步:采用Thumbnailer进行验证 - -我们使用 [Thumbnailer](https://github.com/minio/thumbnailer) 来监听MinIO通知。如果有文件上传于是MinIO服务,Thumnailer监听到该通知,生成一个缩略图并上传到MinIO服务。 -安装Thumbnailer: - -``` -git clone https://github.com/minio/thumbnailer/ -npm install -``` - -然后打开Thumbnailer的``config/webhook.json``配置文件,添加有关MinIO server的配置,使用下面的方式启动Thumbnailer: - -``` -NODE_ENV=webhook node thumbnail-webhook.js -``` - -Thumbnailer运行在``http://localhost:3000/``。下一步,配置MinIO server,让其发送消息到这个URL(第一步提到的),并使用 ``mc`` 来设置存储桶通知(第二步提到的)。然后上传一张图片到MinIO server: - -``` -mc cp ~/images.jpg myminio/images -.../images.jpg: 8.31 KB / 8.31 KB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 100.00% 59.42 KB/s 0s -``` - -稍等片刻,然后使用mc ls检查存储桶的内容 -,你将看到有个缩略图出现了。 - -``` -mc ls myminio/images-thumbnail -[2017-02-08 11:39:40 IST] 992B images-thumbnail.jpg -``` - - - - -## 发布MinIO事件到NSQ - -从[这儿](https://nsq.io/)安装一个NSQ. 或者使用Docker命令启动一个nsq daemon: - -``` -docker run --rm -p 4150-4151:4150-4151 nsqio/nsq /nsqd -``` - -### 第一步: 添加NSQ endpoint到MinIO - -MinIO支持持久事件存储。持久存储将在NSQ broker离线时备份事件,并在broker恢复在线时重播事件。事件存储的目录可以通过`queue_dir`字段设置,存储的最大限制可以通过`queue_limit`设置。例如, `queue_dir`可以设置为`/home/events`, 并且`queue_limit`可以设置为`1000`. 默认情况下 `queue_limit` 是100000. - -更新配置前, 使用`mc admin config get`命令获取`notify_nsq`的当前配置. - -``` -KEY: -notify_nsq[:name] 发布存储桶通知到NSQ endpoints - -ARGS: -nsqd_address* (address) NSQ server地址,例如 '127.0.0.1:4150' -topic* (string) NSQ topic -tls (on|off) 设为'on'代表启用TLS -tls_skip_verify (on|off) 跳过TLS证书验证, 默认是"on" (可信的) -queue_dir (path) 未发送消息的暂存目录 例如 '/home/events' -queue_limit (number) 未发送消息的最大限制, 默认是'100000' -comment (sentence) 可选的注释说明 -``` - -或者通过环境变量(说明参见上面) -``` -KEY: -notify_nsq[:name] publish bucket notifications to NSQ endpoints - -ARGS: -MINIO_NOTIFY_NSQ_ENABLE* (on|off) enable notify_nsq target, default is 'off' -MINIO_NOTIFY_NSQ_NSQD_ADDRESS* (address) NSQ server address e.g. '127.0.0.1:4150' -MINIO_NOTIFY_NSQ_TOPIC* (string) NSQ topic -MINIO_NOTIFY_NSQ_TLS (on|off) set to 'on' to enable TLS -MINIO_NOTIFY_NSQ_TLS_SKIP_VERIFY (on|off) trust server TLS without verification, defaults to "on" (verify) -MINIO_NOTIFY_NSQ_QUEUE_DIR (path) staging dir for undelivered messages e.g. '/home/events' -MINIO_NOTIFY_NSQ_QUEUE_LIMIT (number) maximum limit for undelivered messages, defaults to '100000' -MINIO_NOTIFY_NSQ_COMMENT (sentence) optionally add a comment to this setting -``` - -```sh -$ mc admin config get myminio/ notify_nsq -notify_nsq:1 nsqd_address="" queue_dir="" queue_limit="0" tls_enable="off" tls_skip_verify="off" topic="" -``` - -使用`mc admin config set`命令更新配置后,重启MinIO Server让配置生效。 如果一切顺利,MinIO Server会在启动时输出一行信息,类似 `SQS ARNs: arn:minio:sqs::1:nsq`。 - -```sh -$ mc admin config set myminio notify_nsq:1 nsqd_address="127.0.0.1:4150" queue_dir="" queue_limit="0" tls_enable="off" tls_skip_verify="on" topic="minio" -``` - -请注意, 根据你的需要,你可以添加任意多个NSQ daemon endpoint,只要提供NSQ实例的标识符(如上例中的"1")和每个实例配置参数的信息即可。 - -### 第二步:使用MinIO客户端启用bucket通知 - -我们现在可以在一个叫`images`的存储桶上开启事件通知,一旦上有文件上传到存储桶中,事件将被触发。在这里,ARN的值是`arn:minio:sqs::1:nsq`。更多有关ARN的资料,请参考[这里](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。 - -``` -mc mb myminio/images -mc event add myminio/images arn:minio:sqs::1:nsq --suffix .jpg -mc event list myminio/images -arn:minio:sqs::1:nsq s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg” -``` - -### 第三步: 验证NSQ - -最简单的测试是从[nsq github](https://github.com/nsqio/nsq/releases)下载`nsq_tail`。 - -``` -./nsq_tail -nsqd-tcp-address 127.0.0.1:4150 -topic minio -``` - -打开另一个终端,上传一个JPEG图片到`images`存储桶. - -``` -mc cp gopher.jpg myminio/images -``` - -上传完成后,您应该通过NSQ收到以下事件通知。 - -``` -{"EventName":"s3:ObjectCreated:Put","Key":"images/gopher.jpg","Records":[{"eventVersion":"2.0","eventSource":"minio:s3","awsRegion":"","eventTime":"2018-10-31T09:31:11Z","eventName":"s3:ObjectCreated:Put","userIdentity":{"principalId":"21EJ9HYV110O8NVX2VMS"},"requestParameters":{"sourceIPAddress":"10.1.1.1"},"responseElements":{"x-amz-request-id":"1562A792DAA53426","x-minio-origin-endpoint":"http://10.0.3.1:9000"},"s3":{"s3SchemaVersion":"1.0","configurationId":"Config","bucket":{"name":"images","ownerIdentity":{"principalId":"21EJ9HYV110O8NVX2VMS"},"arn":"arn:aws:s3:::images"},"object":{"key":"gopher.jpg","size":162023,"eTag":"5337769ffa594e742408ad3f30713cd7","contentType":"image/jpeg","userMetadata":{"content-type":"image/jpeg"},"versionId":"1","sequencer":"1562A792DAA53426"}},"source":{"host":"","port":"","userAgent":"MinIO (linux; amd64) minio-go/v6.0.8 mc/DEVELOPMENT.GOGET"}}]} -``` diff --git a/docs/zh_CN/bucket/quota/README.md b/docs/zh_CN/bucket/quota/README.md deleted file mode 100644 index 2f489a132..000000000 --- a/docs/zh_CN/bucket/quota/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# 存储桶配额配置快速入门指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -![quota](https://raw.githubusercontent.com/minio/minio/master/docs/zh_CN/bucket/quota/bucketquota.png) - -存储桶有两种配额类型可供选择,分别是FIFO和Hard。 - -- `Hard` 表示达到配置的配额限制后,禁止向存储桶写入数据。 -- `FIFO` 会自动删除最旧的内容,直到存储桶的空间使用在限制范围内,同时允许写入。 - -> 注意:网关或独立单磁盘模式下不支持存储桶配额。 - -## 前置条件 -- 安装MinIO - [MinIO快速入门指南](https://docs.min.io/cn/minio-quickstart-guide). -- [`mc`和MinIO Server一起使用](https://docs.min.io/cn/minio-client-quickstart-guide) - -## 设置存储桶配额 - -### 在MinIO对象存储上,设置存储桶`mybucket`的额度为1GB,配额类型为hard: - -```sh -$ mc admin bucket quota myminio/mybucket --hard 1gb -``` - -### 将MinIO上的存储桶"mybucket"的额度设置为5GB,配额类型为FIFO,这样就会自动删除较旧的内容,以确保存储桶的空间使用保持在5GB以内 - -```sh -$ mc admin bucket quota myminio/mybucket --fifo 5gb -``` - -### 验证MinIO上的存储桶`mybucket`的配额设置 - -```sh -$ mc admin bucket quota myminio/mybucket -``` - -### 清除MinIO上的存储桶`mybucket`的配额设置 - -```sh -$ mc admin bucket quota myminio/mybucket --clear -``` diff --git a/docs/zh_CN/bucket/quota/bucketquota.png b/docs/zh_CN/bucket/quota/bucketquota.png deleted file mode 100644 index 0d24baabd21b36253c609eca5a929b16be600570..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97414 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 I_ra6@1&QOGNB{r; diff --git a/docs/zh_CN/bucket/replication/HEAD_bucket_replication.png b/docs/zh_CN/bucket/replication/HEAD_bucket_replication.png deleted file mode 100644 index 77e1d54d6c1955493ee8a3ec60d93073def87a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106916 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

%Y!t<5aS&K%(X_`pz+koh)9hmFZ#U*bEsp4eRx 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

3Q+0{DUR5NWTYFc|15_5KYpP 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 diff --git a/docs/zh_CN/bucket/versioning/versioning_GET_versionEnabled.png b/docs/zh_CN/bucket/versioning/versioning_GET_versionEnabled.png deleted file mode 100644 index aacbeb37c2e4c314030529384a4a3550a3cbc45e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137551 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%0A4IDxE;$7Z_lEujFg0L87@*qVD3GI~m#8)PG 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 diff --git a/docs/zh_CN/bucket/versioning/versioning_PUT_versionEnabled.png b/docs/zh_CN/bucket/versioning/versioning_PUT_versionEnabled.png deleted file mode 100644 index fe13b2c089d8bbf419d7ba20e428061fc47f409e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105255 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 JMVIaG{~zcf4}|~# diff --git a/docs/zh_CN/bucket/versioning/xl-meta-to-json.go b/docs/zh_CN/bucket/versioning/xl-meta-to-json.go deleted file mode 100644 index 6c4c187d5..000000000 --- a/docs/zh_CN/bucket/versioning/xl-meta-to-json.go +++ /dev/null @@ -1,121 +0,0 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package main - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - "log" - "os" - - "github.com/minio/cli" - "github.com/tinylib/msgp/msgp" -) - -var xlHeader = [4]byte{'X', 'L', '2', ' '} - -func main() { - app := cli.NewApp() - app.Copyright = "MinIO, Inc." - app.Usage = "xl.meta to JSON" - app.HideVersion = true - app.CustomAppHelpTemplate = `NAME: - {{.Name}} - {{.Usage}} - -USAGE: - {{.Name}} {{if .VisibleFlags}}[FLAGS]{{end}} METAFILES... -{{if .VisibleFlags}} -GLOBAL FLAGS: - {{range .VisibleFlags}}{{.}} - {{end}}{{end}} -` - - app.HideHelpCommand = true - - app.Flags = []cli.Flag{ - cli.BoolFlag{ - Usage: "Print each file as a separate line without formatting", - Name: "ndjson", - }, - } - - app.Action = func(c *cli.Context) error { - if !c.Args().Present() { - cli.ShowAppHelp(c) - return nil - } - for _, file := range c.Args() { - var r io.Reader - switch file { - case "-": - r = os.Stdin - default: - f, err := os.Open(file) - if err != nil { - return err - } - defer f.Close() - r = f - } - - // Read header - var tmp [4]byte - _, err := io.ReadFull(r, tmp[:]) - if err != nil { - return err - } - if !bytes.Equal(tmp[:], xlHeader[:]) { - return fmt.Errorf("xlMeta: unknown XLv2 header, expected %v, got %v", xlHeader[:4], tmp[:4]) - } - // Skip version check for now - _, err = io.ReadFull(r, tmp[:]) - if err != nil { - return err - } - - var buf bytes.Buffer - _, err = msgp.CopyToJSON(&buf, r) - if err != nil { - return err - } - if c.Bool("ndjson") { - fmt.Println(buf.String()) - continue - } - var msi map[string]interface{} - dec := json.NewDecoder(&buf) - // Use number to preserve integers. - dec.UseNumber() - err = dec.Decode(&msi) - if err != nil { - return err - } - b, err := json.MarshalIndent(msi, "", " ") - if err != nil { - return err - } - fmt.Println(string(b)) - } - return nil - } - err := app.Run(os.Args) - if err != nil { - log.Fatal(err) - } -} diff --git a/docs/zh_CN/caching/README.md b/docs/zh_CN/caching/README.md deleted file mode 100644 index e0b58bbe5..000000000 --- a/docs/zh_CN/caching/README.md +++ /dev/null @@ -1,20 +0,0 @@ -## 对象缓存 - -默认情况下,对象缓存处于以下设置状态 - - - 缓存大小是你内存大小的一半,不过如果你的内存小于8G的话,缓存是不开启的。 - - - 缓存对象的过期时间是72小时。 - - - 每次过期时间的1/4时间点(每18小时)触发一次过期对象垃圾回收清理。 - -注意:上述配置不支持手动修改。 - -### 特性 - -GET和PUT操作都会进行缓存。 - -- GET 如果缓存中没有,则将新对象进行缓存,否则直接取缓存中的对象返回。 - -- PUT/POST 对所有上传成功的对象进行缓存,如果之前存在同名(同一个bucket下同名)对象的缓存,则替换之。 -注意:缓存会按之前阐述的过期配置在一定周期后自动过期,经常访问的对象会因为每次缓存命中而延长生命,在缓存中活的很久很久。 \ No newline at end of file diff --git a/docs/zh_CN/chroot/README.md b/docs/zh_CN/chroot/README.md deleted file mode 100644 index 27e13209b..000000000 --- a/docs/zh_CN/chroot/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# 在Chrooted环境中运行MinIO [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -Chroot允许在标准的Linux上基于用户的namespace隔离。 - -## 1. 前置条件 -* 熟悉 [chroot](http://man7.org/linux/man-pages/man2/chroot.2.html) -* 系统上已经安装Chroot - -## 2. 在Chroot中安装MinIO -```sh -mkdir -p /mnt/export/${USER}/bin -wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /mnt/export/${USER}/bin/minio -chmod +x /mnt/export/${USER}/bin/minio -``` - -将你的`proc`挂载绑定到目标chroot目录 -``` -sudo mount --bind /proc /mnt/export/${USER}/proc -``` - -## 3.在Chroot中运行单节点MinIO -### GNU/Linux -```sh -sudo chroot --userspec username:group /mnt/export/${USER} /bin/minio --config-dir=/.minio server /data - -Endpoint: http://192.168.1.92:9000 http://65.19.167.92:9000 -AccessKey: MVPSPBW4NP2CMV1W3TXD -SecretKey: X3RKxEeFOI8InuNWoPsbG+XEVoaJVCqbvxe+PTOa -... -... -``` - -现在可以在主机的9000端口访问实例,在浏览器中输入http://127.0.0.1:9000/即可访问 - -## 进一步探索 -- [Minio纠删码快速入门](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) -- [使用`mc`](https://docs.min.io/cn/minio-client-quickstart-guide) -- [使用`aws-cli`](https://docs.min.io/cn/aws-cli-with-minio) -- [使用`s3cmd`](https://docs.min.io/cn/s3cmd-with-minio) -- [使用`minio-go`SDK](https://docs.min.io/cn/golang-client-quickstart-guide) diff --git a/docs/zh_CN/compression/README.md b/docs/zh_CN/compression/README.md deleted file mode 100644 index 84a18c99b..000000000 --- a/docs/zh_CN/compression/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# 压缩指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) - -MinIO Server 允许压缩流以确保有效使用磁盘空间。压缩是在传输中做的,也就是说,对象在写入磁盘之前已被压缩。MinIO使用 [`klauspost/compress/s2`](https://github.com/klauspost/compress/tree/master/s2) 进行流压缩,因为它高效稳定。 - -该算法专门针对机器生成的内容进行了优化。每个CPU核心的写入吞吐量至少为300MB/s。 解压缩速度通常至少为1GB/s。 -这意味着在原始IO低于这些数字的情况下,压缩不仅会减少磁盘使用量,而且有助于提高系统吞吐量。 -通常,当内容可以压缩时,在机械硬盘系统上启用压缩将提高速度。 - -## 开始使用 - -### 1. 前置条件 - -安装MinIO - [MinIO快速入门指南](https://docs.min.io/cn/minio-quickstart-guide). - -### 2. 为MinIO启用压缩 - -可以通过更新MinIO Server配置的`compress`设置来启用压缩。`compress`设置可以配置哪些扩展名和mime-types可以被压缩。 - -``` -$ mc admin config get myminio compression -compression extensions=".txt,.log,.csv,.json,.tar,.xml,.bin" mime_types="text/*,application/json,application/xml" -``` - -默认配置包括最常见的高度可压缩的内容扩展名和mime类型。 - -``` -$ mc admin config set myminio compression extensions=".pdf" mime_types="application/pdf" -``` - -显示有关设置压缩配置的帮助。 -``` -~ mc admin config set myminio compression -``` - -使用默认的扩展名和mime-types对所有内容启用压缩。 -``` -~ mc admin config set myminio compression enable="on" -``` - -压缩设置也可以通过环境变量来设置。设置后,环境变量将覆盖服务器配置中定义的`compress`配置设置。 - -```bash -export MINIO_COMPRESS="on" -export MINIO_COMPRESS_EXTENSIONS=".pdf,.doc" -export MINIO_COMPRESS_MIME_TYPES="application/pdf" -``` - -### 3. 注意 - -- 已压缩的对象不具有可压缩的模式,因此不适合再压缩。 此类对象无法产生有效的 [`LZ 压缩`](https://en.wikipedia.org/wiki/LZ77_and_LZ78)。以下是不适合压缩的常见文件和内容类型列表。 - - - 扩展名 - - | `gz` | (GZIP) - | `bz2` | (BZIP2) - | `rar` | (WinRAR) - | `zip` | (ZIP) - | `7z` | (7-Zip) - | `xz` | (LZMA) - | `mp4` | (MP4) - | `mkv` | (MKV media) - | `mov` | (MOV) - - - 内容类型 - - | `video/*` | - | `audio/*` | - | `application/zip` | - | `application/x-gzip` | - | `application/zip` | - | `application/x-bz2` | - | `application/x-compress` | - | `application/x-xz` | - -即使所有类型都启用了压缩,具有以上这些扩展名和mime类型的文件也不会被压缩。 - -- MinIO不支持压缩加密,因为压缩和加密一起可能为[`CRIME 和 BREACH`](https://blog.minio.io/c-e-compression-encryption-cb6b7f04a369)等信道攻击留出空间。 - -- MinIO不支持网关(Azure/GCS/NAS)压缩。 - -## 测试设置 - -要测试设置, 使用`mc`PUT一个文件到服务器,然后在数据目录上使用 `mc ls`查看对象的大小。 - -## 进一步探索 - -- [使用`mc`](https://docs.min.io/cn/minio-client-quickstart-guide) -- [使用`aws-cli`](https://docs.min.io/cn/aws-cli-with-minio) -- [使用`s3cmd`](https://docs.min.io/cn/s3cmd-with-minio) -- [使用`minio-go`](https://docs.min.io/cn/golang-client-quickstart-guide) -- [MinIO官方文档](https://docs.min.io/cn) diff --git a/docs/zh_CN/config/README.md b/docs/zh_CN/config/README.md deleted file mode 100644 index ac3cdf19e..000000000 --- a/docs/zh_CN/config/README.md +++ /dev/null @@ -1,312 +0,0 @@ -# MinIO Server 配置指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -## 配置目录 - -默认的配置目录是 `${HOME}/.minio`,你可以使用`--config-dir`命令行选项重写之。MinIO server在首次启动时会生成一个新的`config.json`,里面带有自动生成的访问凭据。 - -```sh -minio server --config-dir /etc/minio /data -``` - -截止到 MinIO `RELEASE.2018-08-02T23-11-36Z` 版本, MinIO server 的配置文件(`config.json`) 被存储在通过 `--config-dir` 指定的目录或者默认的 `${HOME}/.minio` 目录。 但是从 `RELEASE.2018-08-18T03-49-57Z` 版本之后, 配置文件 (仅仅), 已经被迁移到存储后端 (存储后端指的是启动一个服务器的时候,传递给MinIO server的目录)。 - -您可以使用`--config-dir`指定现有配置的位置, MinIO 会迁移 `config.json` 配置到你的存储后端。 迁移成功后,你当前 `--config-dir` 目录中的 `config.json` 将被重命名为 `config.json.deprecated`。 迁移后,所有现有配置都将得到保留。 - -此外,`--config-dir`现在是一个旧配置,计划在将来删除,因此请相应地更新本地startup和ansible脚本。 - -```sh -minio server /data -``` - -MinIO还使用管理员凭据对所有配置,IAM和策略内容进行加密。 - -### 证书目录 -TLS证书存在``${HOME}/.minio/certs``目录下,你需要将证书放在该目录下来启用`HTTPS` 。如果你是一个乐学上进的好青年,这里有一本免费的秘籍传授一你: [如何使用TLS安全的访问minio](https://docs.min.io/cn/how-to-secure-access-to-minio-server-with-tls). - -以下是一个具有TLS证书的MinIO server的目录结构。 - -```sh -$ mc tree --files ~/.minio -/home/user1/.minio -└─ certs - ├─ CAs - ├─ private.key - └─ public.crt -``` - -你可以使用`--certs-dir`命令行选项提供自定义certs目录。 - -#### 凭据 -只能通过环境变量`MINIO_ROOT_USER` 和 `MINIO_ROOT_PASSWORD` 更改MinIO的admin凭据和root凭据。使用这两个值的组合,MinIO加密存储在后端的配置 - -``` -export MINIO_ROOT_USER=minio -export MINIO_ROOT_PASSWORD=minio13 -minio server /data -``` - -##### 使用新的凭据轮换加密 - -另外,如果您想更改管理员凭据,则MinIO将自动检测到该凭据,并使用新凭据重新加密,如下所示。一次只需要设置如下所示的环境变量即可轮换加密配置。 - -> 旧的环境变量永远不会在内存中被记住,并且在使用新凭据迁移现有内容后立即销毁。在服务器再次成功重启后,你可以安全的删除它们。 - -``` -export MINIO_ROOT_USER=newminio -export MINIO_ROOT_PASSWORD=newminio123 -export MINIO_ROOT_USER_OLD=minio -export MINIO_ROOT_PASSWORD_OLD=minio123 -minio server /data -``` - -迁移完成后, 服务器会自动的取消进程空间中的`MINIO_ROOT_USER_OLD` and `MINIO_ROOT_PASSWORD_OLD`设置。 - -> **注意: 在下一次服务重新启动前,要确保移除脚本或者服务文件中的 `MINIO_ROOT_USER_OLD` and `MINIO_ROOT_PASSWORD_OLD`, 避免现有的内容被双重加密** - -#### 区域 -``` -KEY: -region 服务器的物理位置标记 - -ARGS: -name (string) 服务器的物理位置名字,例如 "us-west-rack2" -comment (sentence) 为这个设置添加一个可选的注释 -``` - -或者通过环境变量 -``` -KEY: -region 服务器的物理位置标记 - -ARGS: -MINIO_REGION_NAME (string) 服务器的物理位置名字,例如 "us-west-rack2" -MINIO_REGION_COMMENT (sentence) 为这个设置添加一个可选的注释 -``` - -示例: - -```sh -export MINIO_REGION_NAME="my_region" -minio server /data -``` - -### 存储类型 -默认情况下,标准存储类型的奇偶校验值设置为N/2,低冗余的存储类型奇偶校验值设置为2。在[此处](https://github.com/minio/minio/blob/master/docs/zh_CN/erasure/storage-class/README.md)了解有关MinIO服务器存储类型的更多信息。 - -``` -KEY: -storage_class 定义对象级冗余 - -ARGS: -standard (string) 设置默认标准存储类型的奇偶校验计数,例如"EC:4" -rrs (string) 设置默认低冗余存储类型的奇偶校验计数,例如"EC:2" -comment (sentence) 为这个设置添加一个可选的注释 -``` - -或者通过环境变量 -``` -KEY: -storage_class 定义对象级冗余 - -ARGS: -MINIO_STORAGE_CLASS_STANDARD (string) 设置默认标准存储类型的奇偶校验计数,例如"EC:4" -MINIO_STORAGE_CLASS_RRS (string) 设置默认低冗余存储类型的奇偶校验计数,例如"EC:2" -MINIO_STORAGE_CLASS_COMMENT (sentence) 为这个设置添加一个可选的注释 -``` - -### 缓存 -MinIO为主要的网关部署提供了缓存存储层,使您可以缓存内容以实现更快的读取速度,并节省从云中重复下载的成本。 - -``` -KEY: -cache 添加缓存存储层 - -ARGS: -drives* (csv) 逗号分隔的挂载点,例如 "/optane1,/optane2" -expiry (number) 缓存有效期限(天),例如 "90" -quota (number) 以百分比限制缓存驱动器的使用,例如 "90" -exclude (csv) 逗号分隔的通配符排除模式,例如 "bucket/*.tmp,*.exe" -after (number) 缓存对象之前的最小可访问次数 -comment (sentence) 为这个设置添加一个可选的注释 -``` - -或者通过环境变量 -``` -KEY: -cache 添加缓存存储层 - -ARGS: -MINIO_CACHE_DRIVES* (csv) 逗号分隔的挂载点,例如 "/optane1,/optane2" -MINIO_CACHE_EXPIRY (number) 缓存有效期限(天),例如 "90" -MINIO_CACHE_QUOTA (number) 以百分比限制缓存驱动器的使用,例如 "90" -MINIO_CACHE_EXCLUDE (csv) 逗号分隔的通配符排除模式,例如 "bucket/*.tmp,*.exe" -MINIO_CACHE_AFTER (number) 缓存对象之前的最小可访问次数 -MINIO_CACHE_COMMENT (sentence) 为这个设置添加一个可选的注释 -``` - -#### Etcd -MinIO支持在etcd上存储加密的IAM assets和Bucket DNS记录。 - -> NOTE: if *path_prefix* is set then MinIO will not federate your buckets, namespaced IAM assets are assumed as isolated tenants, only buckets are considered globally unique but performing a lookup with a *bucket* which belongs to a different tenant will fail unlike federated setups where MinIO would port-forward and route the request to relevant cluster accordingly. This is a special feature, federated deployments should not need to set *path_prefix*. - -``` -KEY: -etcd 为IAM and Bucket DNS联合多个集群 - -ARGS: -endpoints* (csv) 以逗号分隔的etcd endpoint列表,例如 "http://localhost:2379" -path_prefix (path) 为隔离租户提供的命名控件前缀,例如 "customer1/" -coredns_path (path) 共享bucket DNS记录, 默认是 "/skydns" -client_cert (path) 用于mTLS身份验证的客户端证书 -client_cert_key (path) 用于mTLS身份验证的客户端证书密钥 -comment (sentence) 为这个设置添加一个可选的注释 -``` - -或者通过环境变量 -``` -KEY: -etcd 为IAM and Bucket DNS联合多个集群 - -ARGS: -MINIO_ETCD_ENDPOINTS* (csv) 以逗号分隔的etcd endpoint列表,例如 "http://localhost:2379" -MINIO_ETCD_PATH_PREFIX (path) 为隔离租户提供的命名控件前缀,例如 "customer1/" -MINIO_ETCD_COREDNS_PATH (path) 共享bucket DNS记录, 默认是 "/skydns" -MINIO_ETCD_CLIENT_CERT (path) 用于mTLS身份验证的客户端证书 -MINIO_ETCD_CLIENT_CERT_KEY (path) 用于mTLS身份验证的客户端证书密钥 -MINIO_ETCD_COMMENT (sentence) 为这个设置添加一个可选的注释 -``` - -### API -默认情况下,服务器/集群同时处理的并发请求数没有限制。 但是,可以使用API子系统强加这种限制。 在[此处](https://github.com/minio/minio/blob/master/docs/zh_CN/throttle/README.md)阅读有关MinIO服务器中限制限制的更多信息。 - -``` -KEY: -api 管理全局HTTP API调用的特定功能,例如限制,身份验证类型等. - -ARGS: -requests_max (number) 设置并发请求的最大数量,例如 "1600" -requests_deadline (duration) 设置等待处理的API请求的期限,例如 "1m" -ready_deadline (duration) 设置健康检查API /minio/health/ready的期限,例如 "1m" -cors_allow_origin (csv) 设置CORS请求允许的来源列表,以逗号分割,例如 "https://example1.com,https://example2.com" -``` - -或者通过环境变量 - -``` -MINIO_API_REQUESTS_MAX (number) 设置并发请求的最大数量,例如 "1600" -MINIO_API_REQUESTS_DEADLINE (duration) 设置等待处理的API请求的期限,例如 "1m" -MINIO_API_CORS_ALLOW_ORIGIN (csv) 设置CORS请求允许的来源列表,以逗号分割,例如 "https://example1.com,https://example2.com" -``` - -#### 通知 -MinIO支持如下列表中的通知。要配置单个目标,请参阅[此处](https://docs.min.io/cn/minio-bucket-notification-guide.html)的更多详细文档 - -``` -notify_webhook 发布 bucket 通知到 webhook endpoints -notify_amqp 发布 bucket 通知到 AMQP endpoints -notify_kafka 发布 bucket 通知到 Kafka endpoints -notify_mqtt 发布 bucket 通知到 MQTT endpoints -notify_nats 发布 bucket 通知到 NATS endpoints -notify_nsq 发布 bucket 通知到 NSQ endpoints -notify_mysql 发布 bucket 通知到 MySQL databases -notify_postgres 发布 bucket 通知到 Postgres databases -notify_elasticsearch 发布 bucket 通知到 Elasticsearch endpoints -notify_redis 发布 bucket 通知到 Redis datastores -``` - -### 访问配置 -可以使用[`mc admin config` get/set/reset/export/import commands](https://github.com/minio/mc/blob/master/docs/minio-admin-complete-guide.md)命令应用所有配置的更改. - -#### 列出所有可用的配置key -``` -~ mc admin config set myminio/ -``` - -#### 获取每个key的帮助 -``` -~ mc admin config set myminio/ -``` - -例如: `mc admin config set myminio/ etcd` 会返回 `etcd` 可用的配置参数 - -``` -~ mc admin config set play/ etcd -KEY: -etcd federate multiple clusters for IAM and Bucket DNS - -ARGS: -endpoints* (csv) comma separated list of etcd endpoints e.g. "http://localhost:2379" -path_prefix (path) namespace prefix to isolate tenants e.g. "customer1/" -coredns_path (path) shared bucket DNS records, default is "/skydns" -client_cert (path) client cert for mTLS authentication -client_cert_key (path) client cert key for mTLS authentication -comment (sentence) optionally add a comment to this setting -``` - -要获取每个配置参数的等效ENV,请使用`--env`标志 -``` -~ mc admin config set play/ etcd --env -KEY: -etcd federate multiple clusters for IAM and Bucket DNS - -ARGS: -MINIO_ETCD_ENDPOINTS* (csv) comma separated list of etcd endpoints e.g. "http://localhost:2379" -MINIO_ETCD_PATH_PREFIX (path) namespace prefix to isolate tenants e.g. "customer1/" -MINIO_ETCD_COREDNS_PATH (path) shared bucket DNS records, default is "/skydns" -MINIO_ETCD_CLIENT_CERT (path) client cert for mTLS authentication -MINIO_ETCD_CLIENT_CERT_KEY (path) client cert key for mTLS authentication -MINIO_ETCD_COMMENT (sentence) optionally add a comment to this setting -``` - -此行为在所有key中都是一致的,每个key都带有可用的示例文档。 - -## 环境变量仅有的配置 (配置文件中没有) - -#### 使用情况采集器 -> 注意: 数据使用情况采集器不支持网关部署模式。 - -数据使用情况采集器默认是启用的,通过Envs可以设置更多的交错延迟。 - -采集器能适应系统速度,并在系统负载时完全暂停。 可以调整采集器的速度,从而达到延迟更新的效果。 每次采集操作之间的延迟都可以通过环境变量`MINIO_SCANNER_DELAY`来调整。 默认情况下,该值为10。 这意味着采集每次操作都将休眠*10x*的时间。 - -大多数设置要让采集器足够慢,这样不会影响整体的系统性能。 -设置 `MINIO_SCANNER_DELAY` 为一个 *较低* 的值可以让采集器更快,并且设置为0的时候,可以让采集器全速运行(不推荐)。 设置一个较高的值可以让采集器变慢,进一步减少资源的消耗。 - -示例: 如下设置将使采集器的速度降低三倍, 减少了系统资源的使用,但是反映到更新的延迟会增加。 - -```sh -export MINIO_SCANNER_DELAY=30 -minio server /data -``` - -### 浏览器 - -开启或关闭浏览器访问,默认是开启的,你可以通过``MINIO_BROWSER``环境变量进行修改。 - -示例: - -```sh -export MINIO_BROWSER=off -minio server /data -``` - -### 域名 - -默认情况下,MinIO支持格式为 http://mydomain.com/bucket/object 的路径类型请求。 -`MINIO_DOMAIN` 环境变量被用来启用虚拟主机类型请求。 如果请求的`Host`头信息匹配 `(.+).mydomain.com`,则匹配的模式 `$1` 被用作 bucket, 并且路径被用作object. 更多路径类型和虚拟主机类型的信息参见[这里](http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAPI.html) -示例: - -```sh -export MINIO_DOMAIN=mydomain.com -minio server /data -``` - -`MINIO_DOMAIN`环境变量支持逗号分隔的多域名配置 -```sh -export MINIO_DOMAIN=sub1.mydomain.com,sub2.mydomain.com -minio server /data -``` - -## 进一步探索 -* [MinIO快速入门指南](https://docs.min.io/cn/minio-quickstart-guide) -* [使用TLS安全的访问Minio服务](https://docs.min.io/cn/how-to-secure-access-to-minio-server-with-tls.html) diff --git a/docs/zh_CN/debugging/README.md b/docs/zh_CN/debugging/README.md deleted file mode 100644 index 769eafb35..000000000 --- a/docs/zh_CN/debugging/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# MinIO Server 调试教程 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -### HTTP Trace -可以通过 [`mc admin trace`](https://github.com/minio/mc/blob/master/docs/minio-admin-complete-guide.md#command-trace---display-minio-server-http-trace) 命令启用HTTP跟踪。 - -示例: -```sh -minio server /data -``` - -默认只跟踪API调用操作和HTTP响应状态。 -```sh -mc admin trace myminio -``` - -跟踪整个HTTP请求 -```sh -mc admin trace --verbose myminio -``` - -跟踪整个HTTP请求和节点间通信 -```sh -mc admin trace --all --verbose myminio -``` - - -### 诊断工具 -诊断工具有助于确保运行MinIO的底层基础设施配置正确,并且运行正常。 此测试是一次长时间运行的测试,建议在首次配置集群时立即运行,并且每次遇到故障时都要运行该测试。 请注意,测试会占用系统上的大部分可用资源. 在使用这个来调试故障场景时必须小心,以防止更大的中断。 可以使用`mc admin subnet health` 命令触发Health测试. - -示例: -```sh -minio server /data -``` - -该命令不带标志 -```sh -mc admin subnet health myminio -``` - -使用如下格式打印结果输出 -```sh -● Admin Info ... ✔ -● CPU ... ✔ -● Disk Hardware ... ✔ -● Os Info ... ✔ -● Mem Info ... ✔ -● Process Info ... ✔ -● Config ... ✔ -● Drive ... ✔ -● Net ... ✔ -********************************************************************************* - WARNING!! - ** THIS FILE MAY CONTAIN SENSITIVE INFORMATION ABOUT YOUR ENVIRONMENT ** - ** PLEASE INSPECT CONTENTS BEFORE SHARING IT ON ANY PUBLIC FORUM ** -********************************************************************************* -mc: Health data saved to dc-11-health_20200321053323.json.gz -``` - -gzip输出包含系统的调试信息 diff --git a/docs/zh_CN/deployment/kernel-tuning/README.md b/docs/zh_CN/deployment/kernel-tuning/README.md deleted file mode 100644 index 3b968663f..000000000 --- a/docs/zh_CN/deployment/kernel-tuning/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# Linux服务器上MinIO生产环境的内核调优 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -这儿有一份针对MinIO服务器内核调优的建议, 你可以拷贝这个[脚本](https://github.com/minio/minio/blob/master/docs/deployment/kernel-tuning/sysctl.sh)到你的服务器上使用。 - -> 注意: 这是Linux服务器上的通用建议,不过在使用前也要非常小心。这些设置不是强制性的,而且也不能解决硬件的问题,所以不要使用它们提高 -> 性能掩盖硬件本身的问题。在任何情况下,都应该先进行硬件基准测试,达到预期结果后才真正的执行优化。 - -``` -#!/bin/bash - -cat > sysctl.conf < -h -... -... - CACHE: - MINIO_CACHE_DRIVES: List of mounted cache drives or directories delimited by "," - MINIO_CACHE_EXCLUDE: List of cache exclusion patterns delimited by "," - MINIO_CACHE_QUOTA: Maximum permitted usage of the cache in percentage (0-100). - MINIO_CACHE_AFTER: Minimum number of access before caching an object. - MINIO_CACHE_WATERMARK_LOW: % of cache quota at which cache eviction stops - MINIO_CACHE_WATERMARK_HIGH: % of cache quota at which cache eviction starts - MINIO_CACHE_RANGE: set to "on" or "off" caching of independent range requests per object, defaults to "on" - - -... -... - - Start MinIO gateway to s3 with edge caching enabled on '/mnt/drive1', '/mnt/drive2' and '/mnt/export1 ... /mnt/export24', - exclude all objects under 'mybucket', exclude all objects with '.pdf' as extension. Cache only those objects accessed atleast 3 times. Garbage collection triggers in at high water mark (i.e. cache disk usage reaches 90% of cache quota) or at 72% and evicts oldest objects by access time until low watermark is reached ( 70% of cache quota) , i.e. 63% of disk usage. - $ export MINIO_CACHE_DRIVES="/mnt/drive1,/mnt/drive2,/mnt/export{1..24}" - $ export MINIO_CACHE_EXCLUDE="mybucket/*,*.pdf" - $ export MINIO_CACHE_QUOTA=80 - $ export MINIO_CACHE_AFTER=3 - $ export MINIO_CACHE_WATERMARK_LOW=70 - $ export MINIO_CACHE_WATERMARK_HIGH=90 - - $ minio gateway s3 -``` - -### 在Docker容器上运行具有缓存的MinIO网关 -### Stable -缓存驱动器需要为磁盘缓存功能启用`strictatime` 或者 `relatime`。在此示例中,在启用了`strictatime`或者`relatime`的情况下,将xfs文件系统挂载在/mnt/cache上。 - -``` -truncate -s 4G /tmp/data -mkfs.xfs /tmp/data # build xfs filesystem on /tmp/data -sudo mkdir /mnt/cache # create mount dir -sudo mount -o relatime /tmp/data /mnt/cache # mount xfs on /mnt/cache with atime. -docker pull minio/minio -docker run --net=host -e MINIO_ROOT_USER={s3-access-key} -e MINIO_ROOT_PASSWORD={s3-secret-key} -e MINIO_CACHE_DRIVES=/cache -e MINIO_CACHE_QUOTA=99 -e MINIO_CACHE_AFTER=0 -e MINIO_CACHE_WATERMARK_LOW=90 -e MINIO_CACHE_WATERMARK_HIGH=95 -v /mnt/cache:/cache minio/minio:latest gateway s3 - -``` - -## 假设 - -- 磁盘缓存配额默认为驱动器容量的80%。 -- 缓存驱动器必须是启用[`atime`](http://kerolasa.github.io/filetimes.html)支持的文件系统挂载点。另外,可以在MINIO_CACHE_DRIVES中指定具有atime支持的可写目录。 -- 每当缓存磁盘使用率相对于配置的缓存配额达到高水位线时,就会发生垃圾收集扫描,GC会清理最近访问最少的对象,直到达到相对于配置的缓存配额的低水位线为止。垃圾收集每隔30分钟运行一次缓存清理扫描。 -- 仅在驱动器具有足够的磁盘空间时才缓存对象。 - -## 行为 - -磁盘缓存为**下载的**对象缓存,即 - -- 下载时如果在缓存中找不到的该条目,则缓存为新对象,否则从缓存中获取。 -- 当从缓存中获取对象时,也会将Bitrot保护添加到缓存的内容中并进行验证。 -- 删除对象时,也会删除缓存中的相应条目(如果有)。 -- 后端离线时,缓存可继续用于诸如GET,HEAD之类的只读操作。 -- Cache-Control和Expires头信息可用于控制对象在缓存中保留的时间。直到满足Cache-Control或Expires的到期时间,才会使用后端验证缓存对象的ETag。 -- 默认情况下,所有range GET请求都会单独缓存 ,但是这并不适用于所有情形,比如当缓存存储受到限制时,因为这种情形下一次性下载整个对象才是最佳选择。 可以选择通过`export MINIO_CACHE_RANGE=off`关闭此功能,以便可以在后台下载整个对象。 -- 为了确保安全性,通常不缓存加密对象。但是,如果希望加密磁盘上的缓存内容,则可以通过MINIO_CACHE_ENCRYPTION_MASTER_KEY环境变量设置一个缓存KMS主密钥,以自动加密所有缓存内容。 - - 请注意,不建议将缓存KMS主密钥用于生产部署中。如果MinIO server/gateway 机器曾经遭到破解,则缓存KMS主密钥也必须被视为受到破解。 - 支持外部KMS来管理缓存KMS密钥已经在计划中,这对于生产部署而言将是理想的选择。 - -> 注意:根据上述配置的间隔,过期会自动发生,经常访问的对象在缓存中的存活时间会更长。 - -### Crash 恢复 - -minio进程被杀死或者崩溃后重启minio网关,磁盘缓存将自动恢复。垃圾回收周期将恢复,并且任何先前缓存的条目都可以正常使用。 - -## 限制 - -- 存储桶策略未缓存,因此后端离线时不支持匿名操作。 -- 使用确定性的散列,对象会被分配到已配置的缓存驱动器上。如果一个或多个驱动器离线,或者更改了缓存驱动器配置,则性能可能会降低到线性查找时间,具体取决于缓存中的磁盘数量。 diff --git a/docs/zh_CN/disk-caching/README.md b/docs/zh_CN/disk-caching/README.md deleted file mode 100644 index 11ca461dc..000000000 --- a/docs/zh_CN/disk-caching/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# 磁盘缓存快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) - -这里的磁盘缓存功能是指使用缓存磁盘将内容存储在更靠近租户的地方。例如,假设你通过`gateway azure`设置访问一个对象并下载下来进行缓存,那接下来的请求都会直接访问缓存磁盘上的对象,直至其过期失效。此功能允许MinIO用户: -- 对象的读取速度性能最佳。 -- 任何对象的首字节时间得到显著改善。 - -## 开始 - -### 1. 前置条件 -安装MinIO - [MinIO快速入门](https://docs.min.io/cn/minio-quickstart-guide)。 - -### 2. 运行带缓存的MinIO网关 -可以通过设置`cache`环境变量为MinIO网关启用磁盘缓存。配置`cache`环境变量需要指定磁盘路径、使用通配符方式指定的不需要进行缓存的对象、用于缓存垃圾回收的高低水位线以及缓存一个对象前的最小访问次数(译者注:就是对象被访问多少次后才缓存它)。 - -下面示例使用`/mnt/drive1`, `/mnt/drive2` ,`/mnt/cache1` ... `/mnt/cache3`来做缓存,并且`mybucket`下的所有对象以及后缀名为`.pdf`的对象不做缓存。如果对象被访问过三次及以上,则将其缓存。在此示例中,缓存最大使用量限制为磁盘容量的80%。当达到高水位线的时候垃圾回收会被触发(即缓存磁盘使用率达到72%的时候),这时候会清理最近最少使用的条目直到磁盘使用率降到低水位线为止(即缓存磁盘使用率降到56%)。 - -```bash -export MINIO_CACHE="on" -export MINIO_CACHE_DRIVES="/mnt/drive1,/mnt/drive2,/mnt/cache{1...3}" -export MINIO_CACHE_EXCLUDE="*.pdf,mybucket/*" -export MINIO_CACHE_QUOTA=80 -export MINIO_CACHE_AFTER=3 -export MINIO_CACHE_WATERMARK_LOW=70 -export MINIO_CACHE_WATERMARK_HIGH=90 - -minio gateway s3 -``` - -`CACHE_WATERMARK`的值是`CACHE_QUOTA`的百分比。 -在上面的示例中,`MINIO_CACHE_WATERMARK_LOW`实际上是磁盘总空间的`0.8 * 0.7 * 100 = 56%`,`MINIO_CACHE_WATERMARK_LOW`实际上是磁盘总空间的`0.8 * 0.9 * 100 = 72%`。 - - -### 3. 验证设置是否成功 -要验证是否部署成功,你可以通过浏览器或者[`mc`](https://docs.min.io/cn/minio-client-quickstart-guide)来访问刚刚部署的MinIO网关。你应该可以看到上传的文件在所有MinIO节点上都可以访问。 - -# 了解更多 -- [磁盘缓存设计](https://github.com/minio/minio/blob/master/docs/zh_CN/disk-caching/DESIGN.md) -- [`mc`快速入门](https://docs.min.io/cn/minio-client-quickstart-guide) -- [使用 `aws-cli`](https://docs.min.io/cn/aws-cli-with-minio) -- [使用 `s3cmd`](https://docs.min.io/cn/s3cmd-with-minio) -- [使用 `minio-go` SDK](https://docs.min.io/cn/golang-client-quickstart-guide) -- [MinIO文档](https://docs.min.io/cn/) diff --git a/docs/zh_CN/distributed/DESIGN.md b/docs/zh_CN/distributed/DESIGN.md deleted file mode 100644 index 27eb8c1a9..000000000 --- a/docs/zh_CN/distributed/DESIGN.md +++ /dev/null @@ -1,154 +0,0 @@ -# 分布式服务器设计指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) -该文档介绍了分布式MinIO服务器的设计、架构和高级用法。 - -## 命令行 -``` -NAME: - minio server - start object storage server - -USAGE: - minio server [FLAGS] DIR1 [DIR2..] - minio server [FLAGS] DIR{1...64} - minio server [FLAGS] DIR{1...64} DIR{65...128} - -DIR: - DIR points to a directory on a filesystem. When you want to combine - multiple drives into a single large system, pass one directory per - filesystem separated by space. You may also use a '...' convention - to abbreviate the directory arguments. Remote directories in a - distributed setup are encoded as HTTP(s) URIs. -``` - -## 常用用法 - -具有4个纠删码集合,每个集合带有16块硬盘的独立纠删码模式部署配置。 -``` -minio server dir{1...64} -``` - -具有64个纠删码集合,每个集合16块硬盘的分布式纠删码模式部署配置。 - -``` -minio server http://host{1...16}/export{1...64} -``` - -## 架构 - -MinIO可以基于省略号这种扩展方式自动的选择纠删集合的大小。下面是我们的纠删码行为的一些底层实现细节。 - -- MinIO采用的是 [Reed-Solomon](https://github.com/klauspost/reedsolomon) 纠删码方案, 该方案最大分片数为256个,也就是128个数据片和128个奇偶校验片。 基于一些实用的架构考虑,MinIO的设计超越了这个限制。 - -- 在MinIO部署中,纠删集合是一个独立的纠删码单元。 一个对象会被分片在一个纠删集合中。纠删集合的大小是根据磁盘的数量自动计算的。 MinIO支持无限数量的磁盘,但每个纠删集合最多有16个磁盘,最少有4个磁盘。 - -- 我们将纠删集合的磁盘数量限制为16个,是因为超过16个纠删码分片会变得混乱,并且没有任何性能优势。此外,由于16个磁盘的纠删集合默认情况下为每个对象提供8个磁盘的容量,因此在任何实际情况下都足够使用。 - -- 纠删集合的大小是根据可用的磁盘数量自动选择的,比如说如果有32台服务器,每台服务器有32块磁盘,总共是1024块磁盘。在这种情况下,纠删集合大小是16。这是由可接受的纠删集合大小的最大公因子(GCD)决定的,公因子取值范围从*4到16*。 - -- *如果磁盘总数有许多共同的除数,那么算法就会为这任意N个纠删集合大小选择最小的纠删集合数量*。例如1024个磁盘 - 4, 8, 16 是公因子. 16个磁盘一组会得到64个纠删集合,8个磁盘一组会得到128个纠删集合, 4个磁盘一组会得到256个纠删集合. 所以算法会自动选择最小的64个集合,也就是 *16 * 64=1024* 个磁盘的总和。 - -- *如果纠删集合中的磁盘总数是奇数,那么GCD算法提供了对奇数纠删集合的亲和力,以便节点可以均匀分布*。 这是为了确保参与任何纠删集合的磁盘数量相同。例如,如果你有2个主机节点,共有180个磁盘,那么GCD是15(奇数),但这将导致磁盘分配不均匀,其中一个节点将会有更多的磁盘。为了避免这种情况,对节点给予亲和力,使用次优的GCD系数为12,提供均匀的分布。 - -- 在这个算法中,我们还确保了将磁盘均匀的分布。MinIO服务器会对传递的省略号参数进行扩展。下面是一个示例来演示这个过程。 - -``` -minio server http://host{1...2}/export{1...8} -``` - -预期扩展 -``` -> http://host1/export1 -> http://host2/export1 -> http://host1/export2 -> http://host2/export2 -> http://host1/export3 -> http://host2/export3 -> http://host1/export4 -> http://host2/export4 -> http://host1/export5 -> http://host2/export5 -> http://host1/export6 -> http://host2/export6 -> http://host1/export7 -> http://host2/export7 -> http://host1/export8 -> http://host2/export8 -``` - -*这种扩展的一个显着特征是它选择了唯一的主机,因此该设置可提供最大的保护和可用性。* - -- 为对象选择纠删集合是在`PutObject()`的过程中决定的,通过以下伪代码使用对象名称查找正确的纠删集合。 -```go -// hashes the key returning an integer. -func sipHashMod(key string, cardinality int, id [16]byte) int { - if cardinality <= 0 { - return -1 - } - sip := siphash.New(id[:]) - sip.Write([]byte(key)) - return int(sip.Sum64() % uint64(cardinality)) -} -``` -在`PutObject()`输入的key是对象的名字, 返回一个唯一索引。该索引是对象将存储的纠删集合中的一个。 该函数根据给定的对象名字返回一致Hash,也就是说对于相同的对象名称,返回的索引总是相同的。 - -- 仅在对象的纠删集合中需要满足读写仲裁。还可以在包含对象的纠删集合中对每个对象进行修复。 - -- 与其他对象存储不同,MinIO的纠删编码是在对象级别而不是卷级别。这允许应用程序通过为每个上传的对象设置`x-amz-storage-class=STANDARD/REDUCED_REDUNDANCY`来选择不同的存储类型,从而有效地利用集群的容量。 - -- MinIO还支持通过扩展区域的方式扩展现有集群。每个区域都是一个独立的实体,每个对象具有与原有群集相同的SLA(读/写仲裁)。通过使用现有的命名控件进行查询验证,MinIO确保不会创建冲突的对象。如果不存在这样的对象,那么MinIO只会选择使用量最少的区域存储该对象。 - -__可以组合很多个区域成一个集群,区域数量没有限制__ - -``` -minio server http://host{1...32}/export{1...32} http://host{5...6}/export{1...8} -``` - -以上示例有两个区域 - -- 32 * 32 = 1024 drives pool1 -- 2 * 8 = 16 drives pool2 - -> 注意这里对通用SLA的要求,原来的集群有1024个磁盘,每个纠删集合有16个磁盘,第二个区域至少要有16个磁盘才能符合原来集群的SLA,或者应该是16的倍数。 - - -MinIO根据每个区域的可用空间比例将新对象放置在区域中。以下伪代码演示了此行为。 -```go -func getAvailablePoolIdx(ctx context.Context) int { - serverPools := z.getServerPoolsAvailableSpace(ctx) - total := serverPools.TotalAvailable() - // choose when we reach this many - choose := rand.Uint64() % total - atTotal := uint64(0) - for _, pool := range serverPools { - atTotal += pool.Available - if atTotal > choose && pool.Available > 0 { - return pool.Index - } - } - // Should not happen, but print values just in case. - panic(fmt.Errorf("reached end of serverPools (total: %v, atTotal: %v, choose: %v)", total, atTotal, choose)) -} -``` - -## 其他用法 - -### 具有多个省略号的高级用法 - -一个独立的纠删模式配置,通过controller组合生成,它有4个纠删集合,每个集合有16个磁盘。 -``` -minio server /mnt/controller{1...4}/data{1...16} -``` - -一个独立的纠删模式配置,通过mounts和controller组合生成,它有16个纠删集合,每个集合有16个磁盘。 -``` -minio server /mnt{1...4}/controller{1...4}/data{1...16} -``` - -一个分布式的纠删模式配置,通过host组合生成,它有2个纠删集合,每个集合有16个磁盘。 -``` -minio server http://host{1...32}/disk1 -``` - -一个机柜级别冗余的分布式纠删模式配置,它有32个纠删集合,每个集合有16个磁盘。 -``` -minio server http://rack{1...4}-host{1...8}.example.net/export{1...16} -``` diff --git a/docs/zh_CN/distributed/README.md b/docs/zh_CN/distributed/README.md deleted file mode 100644 index 31dc81ce4..000000000 --- a/docs/zh_CN/distributed/README.md +++ /dev/null @@ -1,102 +0,0 @@ -# 分布式MinIO快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。 - -## 分布式Minio有什么好处? - -在大数据领域,通常的设计理念都是无中心和分布式。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。 - -### 数据保护 - - -分布式Minio采用 [纠删码](https://docs.min.io/cn/minio-erasure-code-quickstart-guide)来防范多个节点宕机和[位衰减`bit rot`](https://github.com/minio/minio/blob/master/docs/zh_CN/erasure/README.md#what-is-bit-rot-protection)。 - -分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。 - -### 高可用 - -单机Minio服务存在单点故障,相反,如果是一个有 _m_ 台服务器, _n_ 块硬盘的分布式Minio,只要有 _m/2_ 台服务器或者 _m*n_/2 及更多硬盘在线,你的数据就是安全的。 - -例如,一个16节点的Minio集群,每个节点200块硬盘,就算8台服務器宕机,即大概有1600块硬盘,这个集群仍然是可读的,不过你需要9台服務器在线才能写数据。 - -你还可以使用[存储类型](https://github.com/minio/minio/tree/master/docs/zh_CN/erasure/storage-class)自定义每个对象的奇偶分布。 - -### 一致性 - -Minio在分布式和单机模式下,所有读写操作都严格遵守**read-after-write**和**list-after-write**一致性模型。 - -# 开始吧 - -如果你了解Minio单机模式的搭建的话,分布式搭建的流程基本一样,Minio服务基于命令行传入的参数自动切换成单机模式还是分布式模式。 - -## 1. 前提条件 - -安装Minio - [Minio快速入门](https://docs.min.io/cn/minio-quickstart-guide). - -## 2. 运行分布式Minio - -启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。 - -*注意* - -- 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,__建议__ 在执行minio server命令之前,在所有节点上先将access秘钥和secret秘钥export成环境变量`MINIO_ROOT_USER` 和 `MINIO_ROOT_PASSWORD`。 -- __MinIO 可创建每组4到16个磁盘组成的纠删码集合。所以你提供的磁盘总数必须是其中一个数字的倍数。__ -- MinIO会根据给定的磁盘总数或者节点总数选择最大的纠删码集合大小,确保统一分布,即每个节点参与每个集合的磁盘数量相等。 -- __每个对象被写入一个EC集合中,因此该对象分布在不超过16个磁盘上。__ -- __建议运行分布式MinIO设置的所有节点都是同构的,即相同的操作系统,相同数量的磁盘和相同的网络互连。__ -- 分布式Minio使用干净的目录,里面没有数据。你也可以与其他程序共享磁盘,这时候只需要把一个子目录单独给MinIO使用即可。例如,你可以把磁盘挂在到`/export`下, 然后把`/export/data`作为参数传给MinIO server即可。 -- 下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。 -- 分布式Minio里的节点时间差不能超过15分钟,你可以使用[NTP](http://www.ntp.org/) 来保证时间一致。 -- `MINIO_DOMAIN`环境变量应该定义并且导出,以支持bucket DNS style。 -- 在Windows下运行分布式Minio处于实验阶段,请悠着点使用。 - -示例1: 启动分布式Minio实例,8个节点,每节点1块盘,需要在8个节点上都运行下面的命令。 -示例1: 在n个节点上启动分布式MinIO实例,每个节点有m个磁盘,分别挂载在`/export1` 到 `/exportm` (如下图所示), 在所有n个节点上运行此命令: - -![Distributed MinIO, n nodes with m drives each](https://github.com/minio/minio/blob/master/docs/screenshots/Architecture-diagram_distributed_nm.png?raw=true) - -#### GNU/Linux 和 macOS - -```shell -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio server http://host{1...n}/export{1...m} -``` - -> __注意:__ 在以上示例中`n`和`m`代表正整数, *不要直接复制粘贴它们,你应该在部署的时候改成你期望的值*. - -> __注意:__ `{1...n}` 是有3个点的! 用2个点`{1..n}`的话会被shell解析导致不能传给MinIO server, 影响纠删码的顺序, 进而影响性能和高可用性. __所以要始终使用省略号 `{1...n}` (3个点!) 以获得最佳的纠删码分布__ - -#### 扩展现有的分布式集群 -MinIO支持通过命令,指定新的集群来扩展现有集群(纠删码模式),命令行如下: - -```sh -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio server http://host{1...n}/export{1...m} http://host{o...z}/export{1...m} -``` - -例如: -``` -minio server http://host{1...4}/export{1...16} http://host{5...12}/export{1...16} -``` - -现在整个集群就扩展了 _(newly_added_servers\*m)_ 个磁盘,总磁盘变为 _(existing_servers\*m)+(newly_added_servers\*m)_ 个,新的对象上传请求会自动分配到最少使用的集群上。通过以上扩展策略,您就可以按需扩展您的集群。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响。如上命令中,我们可以把原来的集群看做一个区,新增集群看做另一个区,新对象按每个区域中的可用空间比例放置在区域中。在每个区域内,基于确定性哈希算法确定位置。 - -> __说明:__ __您添加的每个区域必须具有与原始区域相同的磁盘数量(纠删码集)大小,以便维持相同的数据冗余SLA。__ -> 例如,第一个区有8个磁盘,您可以将集群扩展为16个、32个或1024个磁盘的区域,您只需确保部署的SLA是原始区域的倍数即可。 - - -## 3. 验证 - -验证是否部署成功,使用浏览器访问Minio服务或者使用 [`mc`](https://docs.min.io/cn/minio-client-quickstart-guide)。多个节点的存储容量和就是分布式Minio的存储容量。 - -## 了解更多 - -- [Minio纠删码快速入门](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) -- [使用 `mc`](https://docs.min.io/cn/minio-client-quickstart-guide) -- [使用 `aws-cli`](https://docs.min.io/cn/aws-cli-with-minio) -- [使用 `s3cmd`](https://docs.min.io/cn/s3cmd-with-minio) -- [使用 `minio-go` SDK ](https://docs.min.io/cn/golang-client-quickstart-guide) - -- [minio官方文档](https://docs.min.io) diff --git a/docs/zh_CN/docker/README.md b/docs/zh_CN/docker/README.md deleted file mode 100644 index 0e2231575..000000000 --- a/docs/zh_CN/docker/README.md +++ /dev/null @@ -1,167 +0,0 @@ -# MinIO Docker 快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -## 前提条件 -您的机器已经安装docker. 从 [这里](https://www.docker.com/community-edition#/download)下载相关软件。 - -## 在Docker中运行MinIO单点模式。 -MinIO 需要一个持久卷来存储配置和应用数据。不过, 如果只是为了测试一下, 您可以通过简单地传递一个目录(在下面的示例中为`/ data`)启动MinIO。这个目录会在容器启动时在容器的文件系统中创建,不过所有的数据都会在容器退出时丢失。 - -```sh -docker run -p 9000:9000 \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ - minio/minio server /data -``` - -要创建具有永久存储的MinIO容器,您需要将本地持久目录从主机操作系统映射到虚拟配置`~/.minio` 并导出`/data`目录。 为此,请运行以下命令 - -#### GNU/Linux 和 macOS -```sh -docker run -p 9000:9000 \ - --name minio1 \ - -v /mnt/data:/data \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ - minio/minio server /data -``` - -#### Windows -```sh -docker run -p 9000:9000 \ - --name minio1 \ - -v D:\data:/data \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ - minio/minio server /data -``` - -## 在Docker中运行MinIO分布式模式 -分布式MinIO可以通过 [Docker Compose](https://docs.min.io/cn/deploy-minio-on-docker-compose) 或者 [Swarm mode](https://docs.min.io/cn/deploy-minio-on-docker-swarm)进行部署。这两者之间的主要区别是Docker Compose创建了单个主机,多容器部署,而Swarm模式创建了一个多主机,多容器部署。 - -这意味着Docker Compose可以让你快速的在你的机器上快速使用分布式MinIO-非常适合开发,测试环境;而Swarm模式提供了更健壮,生产级别的部署。 - -## MinIO Docker提示 - -### MinIO自定义Access和Secret密钥 -要覆盖MinIO的自动生成的密钥,您可以将Access和Secret密钥设为环境变量。 MinIO允许常规字符串作为Access和Secret密钥。 - -#### GNU/Linux 和 macOS -```sh -docker run -p 9000:9000 --name minio1 \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ - -v /mnt/data:/data \ - minio/minio server /data -``` - -#### Windows -```powershell -docker run -p 9000:9000 --name minio1 \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ - -v D:\data:/data \ - minio/minio server /data -``` - -### 以普通用户身份运行MinIO Docker -Docker提供了标准化的机制,可以以非root用户身份运行docker容器。 - -#### GNU/Linux 和 macOS -在 Linux 和 macOS 上, 你可以使用 `--user` 以普通用户身份来运行容器。 - -> 注意: 在使用`--user`前,一定要确保--user指定的用户具备 *${HOME}/data* 的写入权限。 -```sh -mkdir -p ${HOME}/data -docker run -p 9000:9000 \ - --user $(id -u):$(id -g) \ - --name minio1 \ - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY" \ - -v ${HOME}/data:/data \ - minio/minio server /data -``` - -#### Windows -在windows上, 你需要用到 [Docker集成Windows身份验证](https://success.docker.com/article/modernizing-traditional-dot-net-applications#integratedwindowsauthentication) 和 [创建具有Active Directory支持的容器](https://blogs.msdn.microsoft.com/containerstuff/2017/01/30/create-a-container-with-active-directory-support/) 的能力 - -> 注意: 在使用`credentialspec=`时,要确保你的AD/Windows用户具备 *D:\data* 的写入权限。 - -```powershell -docker run -p 9000:9000 \ - --name minio1 \ - --security-opt "credentialspec=file://myuser.json" - -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ - -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY" \ - -v D:\data:/data \ - minio/minio server /data -``` - -### 使用Docker secrets进行MinIO Access和Secret密钥自定义 -要覆盖MinIO的自动生成的密钥,你可以把secret和access秘钥创建成[Docker secrets](https://docs.docker.com/engine/swarm/secrets/). MinIO允许常规字符串作为Access和Secret密钥。 - -``` -echo "AKIAIOSFODNN7EXAMPLE" | docker secret create access_key - -echo "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" | docker secret create secret_key - -``` - -使用`docker service`创建MinIO服务,并读取Docker secrets。 -``` -docker service create --name="minio-service" --secret="access_key" --secret="secret_key" minio/minio server /data -``` - -更多 `docker service`信息,请访问 [这里](https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/) - -#### 自定义MinIO Access和Secret密钥文件 -要使用其他密钥名称,请把上面的`access_key` 和 `secret_key`替换为你自定义的名称(比如`my_secret_key`,`my_custom_key`)。使用如下命令运行服务 -``` -docker service create --name="minio-service" \ - --secret="my_access_key" \ - --secret="my_secret_key" \ - --env="MINIO_ROOT_USER_FILE=my_access_key" \ - --env="MINIO_ROOT_PASSWORD_FILE=my_secret_key" \ - minio/minio server /data -``` - -### 获取容器ID -在容器中使用Docker命令, 你需要知道这个容器的 `容器ID` 。 为了获取 `Container ID`, 运行 - -```sh -docker ps -a -``` - -`-a` flag 确保你获取所有的容器(创建的,正在运行的,退出的),然后从输出中识别`Container ID`。 - -### 启动和停止容器 -启动容器,你可以使用 [`docker start`](https://docs.docker.com/engine/reference/commandline/start/) 命令。 - -```sh -docker start -``` - -停止一下正在运行的容器, 使用 [`docker stop`](https://docs.docker.com/engine/reference/commandline/stop/) 命令。 -```sh -docker stop -``` - -### MinIO容器日志 -获取MinIO日志,使用 [`docker logs`](https://docs.docker.com/engine/reference/commandline/logs/) 命令。 - -```sh -docker logs -``` - -### 监控MinioDocker容器 -监控MinIO容器使用的资源,使用 [`docker stats`](https://docs.docker.com/engine/reference/commandline/stats/) 命令. - -```sh -docker stats -``` - -## 了解更多 - - -* [在Docker Compose上部署MinIO](https://docs.min.io/cn/deploy-minio-on-docker-compose) -* [在Docker Swarm上部署MinIO](https://docs.min.io/cn/deploy-minio-on-docker-swarm) -* [分布式MinIO快速入门](https://docs.min.io/cn/distributed-minio-quickstart-guide) -* [MinIO纠删码模式快速入门](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) - diff --git a/docs/zh_CN/erasure/README.md b/docs/zh_CN/erasure/README.md deleted file mode 100644 index f2348114c..000000000 --- a/docs/zh_CN/erasure/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Minio纠删码快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) - -Minio使用纠删码`erasure code`和`checksum`来保护数据免受硬件故障和无声数据损坏。 即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。 - -## 什么是纠删码`erasure code`? - -纠删码是一种恢复丢失和损坏数据的数学算法, Minio采用里德-所罗门码将对象分片为数据和奇偶校验块。 这就意味着如果是12块盘,一个对象可被分片的范围是:6个数据块和6个奇偶校验块 到 10个数据块和2个奇偶校验块之间。 - -默认情况下, MinIO 将对象拆分成N/2数据和N/2 奇偶校验盘. 虽然你可以通过 [存储类型](https://github.com/minio/minio/tree/master/docs/zh_CN/erasure/storage-class) 自定义配置, 但是我们还是推荐N/2个数据和奇偶校验块, 因为它可以确保对硬盘故障提供最佳保护。 - -比如上面12个盘的例子,通过默认配置运行MinIO服务的话,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复,是不是很NB,感兴趣的同学请翻墙google。 - -## 为什么纠删码有用? - -纠删码的工作原理和RAID或者复制不同,像RAID6可以在损失两块盘的情况下不丢数据,而Minio纠删码可以在丢失一半的盘的情况下,仍可以保证数据安全。 而且Minio纠删码是作用在对象级别,可以一次恢复一个对象,而RAID是作用在卷级别,数据恢复时间很长。 Minio对每个对象单独编码,存储服务一经部署,通常情况下是不需要更换硬盘或者修复。Minio纠删码的设计目标是为了性能和尽可能的使用硬件加速。 - -![Erasure](https://github.com/minio/minio/blob/master/docs/screenshots/erasure-code.jpg?raw=true) - -## 什么是位衰减`bit rot`保护? - -位衰减又被称为数据腐化`Data Rot`、无声数据损坏`Silent Data Corruption`,是目前硬盘数据的一种严重数据丢失问题。硬盘上的数据可能会神不知鬼不觉就损坏了,也没有什么错误日志。正所谓明枪易躲,暗箭难防,这种背地里犯的错比硬盘直接咔咔宕了还危险。 不过不用怕,Minio纠删码采用了高速 [HighwayHash](https://github.com/minio/highwayhash) 基于哈希的校验和来防范位衰减。 - -## 驱动器(盘)如何使用纠删码? - -MinIO会把你提供的所有驱动器,按照*4 到 16*个一组划分为多个纠删码集合,因此,你提供的驱动器数量必须是以上这些数字(4到16)的倍数。每个对象都会被写入一个单独的纠删码集合中。 - -Minio会尽可能使用最大的纠删码集合大小(EC set size)进行划分.比如 *18个盘*会被划分为2个纠删码集合,每个集合有9个盘;*24个盘*也会被划分为2个纠删码集合,每个集合有12个盘。对于将MinIO作为独立的纠删码部署运行的场景而言,这是正确的。然而,在 [分布式部署](https://docs.minio.io/cn/distributed-minio-quickstart-guide.html) 时,选择的是基于节点(亲和力)的纠删条带大小. - -驱动器的大小应当都差不多。 - -## Minio纠删码快速入门 - -### 1. 前提条件: - -安装Minio- [Minio快速入门](https://docs.min.io/cn/minio-quickstart-guide) - -### 2. 以纠删码模式运行Minio - -示例: 使用Minio,在12个盘中启动Minio服务。 - -```sh -minio server /data{1...12} -``` - -示例: 使用Minio Docker镜像,在8块盘中启动Minio服务。 - -```sh -docker run -p 9000:9000 --name minio \ - -v /mnt/data1:/data1 \ - -v /mnt/data2:/data2 \ - -v /mnt/data3:/data3 \ - -v /mnt/data4:/data4 \ - -v /mnt/data5:/data5 \ - -v /mnt/data6:/data6 \ - -v /mnt/data7:/data7 \ - -v /mnt/data8:/data8 \ - minio/minio server /data{1...8} -``` - -### 3. 验证是否设置成功 - -你可以随意拔掉硬盘,看Minio是否可以正常读写。 diff --git a/docs/zh_CN/erasure/storage-class/README.md b/docs/zh_CN/erasure/storage-class/README.md deleted file mode 100644 index fdfd61069..000000000 --- a/docs/zh_CN/erasure/storage-class/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# MinIO 存储类型快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) - -在纠删码模式下,MinIO server支持存储类型. 这可以指定每个对象的数据和奇偶校验盘,其实就是可以为对象选择不同的存储类型. - -## 概述 - -MinIO 支持两种存储类型, 低冗余存储和标准存储。 这些存储类型可以在MinIO服务器启动之前通过环境变量定义。 在通过环境变量定义了每个存储类型的数据和奇偶校验盘的数量后, -你可以通过请求中的元数据字段`x-amz-storage-class`来设置一个对象的存储类型。然后,MinIO服务器通过将对象保存在特定数量的数据和奇偶校验盘中来兑现存储类型。 - -## 可用存储空间 - -选择不同的数据和奇偶校验盘的数量会直接影响到存储空间的使用。通过存储类型,你能优化以实现高冗余或者是更好的空间利用率。 - -让我们以在16个盘的MinIO部署中存储100M文件为例,来了解数据和奇偶校验盘数量的不同组合是如何影响可用存储空间的。如果你使用8个数据盘和8个奇偶校验盘,文件空间使用量约为两倍, -即100M文件将占用200M空间。但是,如果你是用10个数据盘和6个奇偶校验盘,则同样的100M文件大约需要160M的空间。如果你是用14个数据盘和2个奇偶校验盘,100M文件仅仅需要约114M空间。 - -以下是一张16盘的MinIO部署,数据/奇偶校验盘数量和相应的 _近似_ 存储储空间使用情况列表。_空间使用率_ 约等于纠删编码下的使用空间除以文件的实际大小。 - -| 盘总个数 (N) | 数据盘个数 (D) | 奇偶校验码个数 (P) | 空间使用率 | -|------------------|-----------------|-------------------|---------------------| -| 16 | 8 | 8 | 2.00 | -| 16 | 9 | 7 | 1.79 | -| 16 | 10 | 6 | 1.60 | -| 16 | 11 | 5 | 1.45 | -| 16 | 12 | 4 | 1.34 | -| 16 | 13 | 3 | 1.23 | -| 16 | 14 | 2 | 1.14 | - -你可以使用公式: `盘总个数 (N)/数据盘个数 (D)`来计算 _大概的_ 空间使用率。 - -### 标准(STANDARD)存储类型的允许值 - -`STANDARD`存储类型意味着奇偶校验盘比`REDUCED_REDUNDANCY`多。 所以, `STANDARD`的奇偶校验盘数量应该 - -- 如果`REDUCED_REDUNDANCY`的奇偶校验盘未设置的话,应该大于等于2。 -- 如果已设置的话,应该大于`REDUCED_REDUNDANCY`的奇偶校验盘数量。 - -奇偶校验块不能大于数据块,所以`STANDARD`存储类型的奇偶校验块不能大于N/2。(N是盘总个数) - -`STANDARD`存储类型的默认值是`N/2`(N是盘总个数)。 - -### 低冗余(REDUCED_REDUNDANCY)存储类型的允许值 - -`REDUCED_REDUNDANCY`存储类型意味着奇偶校验盘比`REDUCED_REDUNDANCY`少。 所以, `REDUCED_REDUNDANCY`的奇偶校验盘数量应该 - -- 如果`STANDARD`的奇偶校验盘未设置的话,应该小于2。 -- 如果设置的话,应该小于`STANDARD`的奇偶校验盘数量。 - -因为不建议奇偶校验盘数量低于2, 所以4个盘组成的纠删码模式部署是不支持`REDUCED_REDUNDANCY`存储类型的。 - -`REDUCED_REDUNDANCY`存储类型的默认值是`2`。 - -## 存储类型入门 - -### 设置存储类型 - -设置存储类型环境变量的格式如下 - -`MINIO_STORAGE_CLASS_STANDARD=EC:parity` -`MINIO_STORAGE_CLASS_RRS=EC:parity` - -例如, 设置 `MINIO_STORAGE_CLASS_RRS` 奇偶校验盘为2 以及设置 `MINIO_STORAGE_CLASS_STANDARD` 奇偶校验盘为3 - -```sh -export MINIO_STORAGE_CLASS_STANDARD=EC:3 -export MINIO_STORAGE_CLASS_RRS=EC:2 -``` - -也可以通过`mc admin config` get/set 命令来设置存储类型。参考 [存储类型](https://github.com/minio/minio/tree/master/docs/zh_CN/config#存储类型) 获取更多详细信息。 - - -*注意* - -- 如果通过环境变量或`mc admin config` get/set命令设置了`STANDARD`存储类型,并且请求元数据中不存在`x-amz-storage-class`,则MinIO服务器会将`STANDARD`存储类型应用于该对象。这意味着将按照`STANDARD`存储类型中的设置使用数据和奇偶校验盘数量。 - -- 如果在启动MinIO服务器之前未定义存储类型,并且随后的PutObject元数据字段中存在`x-amz-storage-class`,其值为`REDUCED_REDUNDANCY`或`STANDARD`,则MinIO服务器将使用默认的奇偶校验值。 - -### 设置元数据 - -如下`minio-go`的示例中,存储类型被设置为`REDUCED_REDUNDANCY`。这意味着对象被拆分为6个数据块和2个奇偶校验块(按照上一步骤中的存储类型设置)。 - -```go -s3Client, err := minio.New("localhost:9000", "YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", true) -if err != nil { - log.Fatalln(err) -} - -object, err := os.Open("my-testfile") -if err != nil { - log.Fatalln(err) -} -defer object.Close() -objectStat, err := object.Stat() -if err != nil { - log.Fatalln(err) -} - -n, err := s3Client.PutObject("my-bucketname", "my-objectname", object, objectStat.Size(), minio.PutObjectOptions{ContentType: "application/octet-stream", StorageClass: "REDUCED_REDUNDANCY"}) -if err != nil { - log.Fatalln(err) -} -log.Println("Uploaded", "my-objectname", " of size: ", n, "Successfully.") -``` diff --git a/docs/zh_CN/gateway/README.md b/docs/zh_CN/gateway/README.md deleted file mode 100644 index ad99d6d48..000000000 --- a/docs/zh_CN/gateway/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# MinIO 网关 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) -MinIO网关将Amazon S3兼容性添加到第三方云存储提供者。 -- [Microsoft Azure Blob Storage](https://github.com/minio/minio/blob/master/docs/gateway/azure.md) -- [Google Cloud Storage](https://github.com/minio/minio/blob/master/docs/gateway/gcs.md) _Alpha release_ - -## 路线图 -* MinIO & AWS S3 -* Edge Caching - 基于磁盘的代理缓存 - diff --git a/docs/zh_CN/gateway/azure-limitations.md b/docs/zh_CN/gateway/azure-limitations.md deleted file mode 100644 index f74de225f..000000000 --- a/docs/zh_CN/gateway/azure-limitations.md +++ /dev/null @@ -1,17 +0,0 @@ -## MinIO Azure网关限制 - -网关继承了下列Azure限制: - -- 最大的Multipart part size是100MB. -- 最大的对象大小是10000*100 MB = 1TB -- 不支持针对前缀的存储桶策略,仅支持顶层存储桶策略。 -- 网关重启意味着正在进行的multipart上传也需要重新启动,即客户端必须再一次运行NewMultipartUpload。 -这是因为S3客户端在NewMultipartUpload中发送元数据,但Azure希望在CompleteMultipartUpload(Azure术语中的PutBlockList)中设置元数据。 - This is because S3 clients send metadata in NewMultipartUpload but Azure expects metadata to - be set during CompleteMultipartUpload (PutBlockList in Azure terminology). 在NewMultipartUpload期间,我们将客户端发送的元数据存储在内存中,以便以后可以在CompleteMultipartUpload中将其设置在Azure上。如果网关穗启,这些信息也会丢失。 -- 存储桶名称不支持以 "."开始。 -- 调用DeleteBucket() 可删除非空存储桶。 - -其它限制: -- 目前ListMultipartUploads实现不完整,只要存在任意上传的parts,就会返回。 -- 不支持存储桶通知。 diff --git a/docs/zh_CN/gateway/azure.md b/docs/zh_CN/gateway/azure.md deleted file mode 100644 index 9b4e425cd..000000000 --- a/docs/zh_CN/gateway/azure.md +++ /dev/null @@ -1,43 +0,0 @@ - -# MinIO Azure 网关 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) -MinIO网关将亚马逊S3兼容性添加到微软Azure Blob存储。 - -## 运行支持微软Azure Blob存储的MinIO网关 -### 使用Docker -``` -docker run -p 9000:9000 --name azure-s3 \ - -e "MINIO_ROOT_USER=azureaccountname" \ - -e "MINIO_ROOT_PASSWORD=azureaccountkey" \ - minio/minio gateway azure -``` - -### 使用二进制 -``` -export MINIO_ROOT_USER=azureaccountname -export MINIO_ROOT_PASSWORD=azureaccountkey -minio gateway azure -``` -## 使用MinIO浏览器验证 -MinIO Gateway配有嵌入式网络对象浏览器。 将您的Web浏览器指向http://127.0.0.1:9000确保您的服务器已成功启动。 - -![截图](https://github.com/minio/minio/blob/master/docs/screenshots/minio-browser-gateway.png?raw=true) -## 使用MinIO客户端 `mc`验证 -`mc` 提供了诸如ls,cat,cp,mirror,diff等UNIX命令的替代方案。它支持文件系统和Amazon S3兼容的云存储服务。 - -### 配置 `mc` -``` -mc alias set myazure http://gateway-ip:9000 azureaccountname azureaccountkey -``` - -### 列出微软Azure上的容器 -``` -mc ls myazure -[2017-02-22 01:50:43 PST] 0B ferenginar/ -[2017-02-26 21:43:51 PST] 0B my-container/ -[2017-02-26 22:10:11 PST] 0B test-container1/ -``` - -## 了解更多 -- [`mc` 命令行接口](https://docs.min.io/cn/minio-client-quickstart-guide) -- [`aws` 命令行接口](https://docs.min.io/cn/aws-cli-with-minio) -- [`minio-go` Go SDK](https://docs.min.io/cn/golang-client-quickstart-guide) diff --git a/docs/zh_CN/gateway/gcs-limitations.md b/docs/zh_CN/gateway/gcs-limitations.md deleted file mode 100644 index e1f1db1d6..000000000 --- a/docs/zh_CN/gateway/gcs-limitations.md +++ /dev/null @@ -1,9 +0,0 @@ -## MinIO GCS 网关限制 - -网关继承了以下GCS限制: - -- 每次上传最多parts数量是1024。 -- 暂不支持存储桶策略。 -- 暂不支持存储桶通知。 -- _List Multipart Uploads_ 和 _List Object parts_ 会一直返回空List,即客户端需要记住已经上传的parts,并使用它用于 _Complete Multipart Upload_。 - diff --git a/docs/zh_CN/gateway/gcs.md b/docs/zh_CN/gateway/gcs.md deleted file mode 100644 index ad80e7a79..000000000 --- a/docs/zh_CN/gateway/gcs.md +++ /dev/null @@ -1,59 +0,0 @@ -# MinIO GCS 网关 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) -MinIO GCS网关将亚马逊S3兼容性添加到Google云存储。 - -## 运行支持GCS的MinIO 网关 -### 为GCS创建服务帐户密钥,并获取凭据文件 -1. 访问 [API控制台凭证页面](https://console.developers.google.com/project/_/apis/credentials). -2. 选择您的项目或创建一个新项目, 记下你的项目ID。 -3. 在凭据页面,选择 __Create credentials__ 下拉项,然后选择 __Service account key__。 -4. 从 __Service account__下拉项, 选择 __New service account__ -5. 填写 __Service account name__ 和 __Service account ID__ -6. 对于 __Role__, 点击下拉项,选择 __Storage__ -> __Storage Admin__ _(完全控制GCS资源)_ -7. 点击 __Create__ 按钮,下载凭据文件到你的桌面,文件名咱们就叫 credentials.json - -注意: 设置 *Application Default Credentials*的替代方案 在 [这里](https://developers.google.com/identity/protocols/application-default-credentials)进行了描述。 - -### 使用 Docker -``` -docker run -p 9000:9000 --name gcs-s3 \ - -v /path/to/credentials.json:/credentials.json \ - -e "GOOGLE_APPLICATION_CREDENTIALS=/credentials.json" \ - -e "MINIO_ROOT_USER=minioaccountname" \ - -e "MINIO_ROOT_PASSWORD=minioaccountkey" \ - minio/minio gateway gcs yourprojectid -``` - -### 使用二进制 -``` -export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json -export MINIO_ROOT_USER=minioaccesskey -export MINIO_ROOT_PASSWORD=miniosecretkey -minio gateway gcs yourprojectid -``` - -## 使用MinIO Browser验证 -MinIO Gateway配有嵌入式网络对象浏览器。 将您的Web浏览器指向http://127.0.0.1:9000确保您的服务器已成功启动。 - -![Screenshot](https://github.com/minio/minio/blob/master/docs/screenshots/minio-browser-gateway.png?raw=true) - -## 使用MinIO客户端 `mc`验证 -`mc` 提供了诸如ls,cat,cp,mirror,diff等UNIX命令的替代方案。它支持文件系统和Amazon S3兼容的云存储服务。 - -### 配置 `mc` -``` -mc alias set mygcs http://gateway-ip:9000 minioaccesskey miniosecretkey -``` - -### 列出GCS上的容器 -``` -mc ls mygcs -[2017-02-22 01:50:43 PST] 0B ferenginar/ -[2017-02-26 21:43:51 PST] 0B my-container/ -[2017-02-26 22:10:11 PST] 0B test-container1/ -``` - -## 了解更多 -- [`mc` 命令行接口](https://docs.min.io/cn/minio-client-quickstart-guide) -- [`aws` 命令行接口](https://docs.min.io/cn/aws-cli-with-minio) -- [`minio-go` Go SDK](https://docs.min.io/cn/golang-client-quickstart-guide) - diff --git a/docs/zh_CN/gateway/nas.md b/docs/zh_CN/gateway/nas.md deleted file mode 100644 index 7a807f5d7..000000000 --- a/docs/zh_CN/gateway/nas.md +++ /dev/null @@ -1,43 +0,0 @@ -# MinIO NAS网关 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) -MinIO网关使用NAS存储支持Amazon S3。你可以在同一个共享NAS卷上运行多个minio实例,作为一个分布式的对象网关。 - -## 为NAS存储运行MinIO网关 -### 使用Docker -``` -docker run -p 9000:9000 --name nas-s3 \ - -e "MINIO_ROOT_USER=minio" \ - -e "MINIO_ROOT_PASSWORD=minio123" \ - minio/minio gateway nas /shared/nasvol -``` - -### 使用二进制 -``` -export MINIO_ROOT_USER=minioaccesskey -export MINIO_ROOT_PASSWORD=miniosecretkey -minio gateway nas /shared/nasvol -``` -## 使用浏览器进行验证 -使用你的浏览器访问`http://127.0.0.1:9000`,如果能访问,恭喜你,启动成功了。 - -![Screenshot](https://raw.githubusercontent.com/minio/minio/master/docs/screenshots/minio-browser-gateway.png) - -## 使用`mc`进行验证 -`mc`为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。 - -### 设置`mc` -``` -mc alias set mynas http://gateway-ip:9000 access_key secret_key -``` - -### 列举nas上的存储桶 -``` -mc ls mynas -[2017-02-22 01:50:43 PST] 0B ferenginar/ -[2017-02-26 21:43:51 PST] 0B my-bucket/ -[2017-02-26 22:10:11 PST] 0B test-bucket1/ -``` - -## 了解更多 -- [`mc`快速入门](https://docs.min.io/docs/minio-client-quickstart-guide) -- [使用 aws-cli](https://docs.min.io/docs/aws-cli-with-minio) -- [使用 minio-go SDK](https://docs.min.io/docs/golang-client-quickstart-guide) diff --git a/docs/zh_CN/large-bucket/README.md b/docs/zh_CN/large-bucket/README.md deleted file mode 100644 index 9be95bc64..000000000 --- a/docs/zh_CN/large-bucket/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# 超大存储桶快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -MinIO的纠删码功能限制了最多只能使用16块磁盘。这就限制了一个租户的数据可以用多少存储空间。不过,为了满足需要大量磁盘或者是超大容量存储空间的需求,我们引入了超大存储桶的支持。 - -如果一个MinIO存储桶可以扩展到多个纠删码部署集合,我们就称之为超大存储桶。不需要做任何特殊设置,它就可以帮助你创建PB级的存储系统。为了超大存储桶支持,你就可以在部署MinIO服务时使用超过16块磁盘。MinIO在内部创建了多个纠删码集合,这些集合又进一步组合成一个命名空间。本文将对超大存储桶的部署做一个简单的介绍。想了解更多,请参考[设计文档](https://github.com/minio/minio/blob/master/docs/large-bucket/DESIGN.md)。 - -## 开始 -安装和部署方式和分布式MinIO一样。只不过是在输入参数的语法上,用`...`来做为磁盘参数的简写。分布式设置中的远程磁盘被编码为HTTP(s)URI,它也可以被同样的缩写。 - -### 1. 前提条件 -安装MinIO - [MinIO快速入门](https://docs.min.io/docs/minio-quickstart-guide)。 - -### 2. 在多个磁盘上运行MinIO -我们将在下面的章节中看到如何做到这一点的例子。 - -*注意* - -- 运行分布式MinIO的所有节点都需要具有相同的access key和secret key。为此,我们在执行MinIO服务器命令之前将access key和secret key导出为所有节点上的环境变量。 -- 下面的驱动器路径仅用于演示目的,你需要将其替换为实际的路径/文件夹。 - -#### 多磁盘下的MinIO超大存储桶 (独立模式) -你需要有多块磁盘,例如 `/export1, /export2 .... /export24`。 然后在你想要启动MinIO的所有节点上运行以下命令。 - -```sh -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio server /export{1...24} -``` - -#### 多磁盘下的MinIO超大存储桶 (分布式模式) -你需要有多块在不同服务器上的磁盘,例如`http://host1/export1, http://host2/export2 .... http://host4/export16`。 然后在你想要启动MinIO的所有节点上运行以下命令。 - -```sh -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio server http://host{1...4}/export{1...16} -``` - -### 3. 验证设置是否成功 -要验证是否部署成功,你可以通过浏览器或者[`mc`](https://docs.min.io/docs/minio-client-quickstart-guide)来访问刚刚部署的MinIO服务。你应该可以看到上传的文件在所有MinIO节点上都可以访问。 - -## 了解更多 -- [mc快速入门](https://docs.min.io/docs/minio-client-quickstart-guide) -- [使用 aws-cli](https://docs.min.io/docs/aws-cli-with-minio) -- [使用 s3cmd](https://docs.min.io/docs/s3cmd-with-minio) -- [使用 minio-go SDK](https://docs.min.io/docs/golang-client-quickstart-guide) -- [MinIO文档](https://docs.min.io) \ No newline at end of file diff --git a/docs/zh_CN/minio-limits.md b/docs/zh_CN/minio-limits.md deleted file mode 100644 index 8146ef1e6..000000000 --- a/docs/zh_CN/minio-limits.md +++ /dev/null @@ -1,56 +0,0 @@ -## 每个租户的MinIO服务器限制 - -### 纠删码 (多块 硬盘/服务器) - -|条目|限制| -|:---|:---| -|每个群集的最大服务器数| 不限| -|联盟集群的最大数量 | no-limit| -|最小服务器数| 02| -|服务器数为1时,每台服务器的最小硬盘数 | 04 | -|服务器数为2或3时,每台服务器的最小硬盘数 | 02| -|服务器数为4时,每台服务器的最小硬盘数 | 01| -|每台服务器的最大硬盘数| 不限| -|读仲裁|N / 2| -|写仲裁|N / 2+1 | - - -### 浏览器访问 - -|条目|限制| -|:---|:---| -|Web浏览器上传大小限制| 5GB| - -### S3 API的限制 - -|条目|限制| -|:---|:---| -|最大存储桶数|不限| -|每个存储桶的最大对象数|不限| -|最大对象大小| 5 TB | -|最小对象大小| 0 B | -|每次PUT操作的最大对象大小| 5 GB | -|每次上传的最大分片数量| 10,000| -|分片大小 |5MB到5GB. 最后一个分片可以从0B到5GB| -|每次list分片请求可返回的最大分片数量| 10000| -|每次list 对象请求可返回的最大对象数量| 10000| -|每次list multipart uploads请求可返回的multipart uploads最大数量| 1000| - -### MinIO不支持的Amazon S3 API -我们认为下列AWS S3的API有些冗余或者说用处不大,因此我们在minio中没有实现这些接口。如果您有不同意见,欢迎在[github](https://github.com/minio/minio/issues)上提issue。 - -#### MinIO不支持的Amazon S3 Bucket API - -- BucketACL (可以用 [存储桶策略](https://docs.min.io/cn/minio-client-complete-guide#policy)) -- BucketCORS (所有HTTP方法的所有存储桶都默认启用CORS) -- BucketWebsite (可以用 [`caddy`](https://github.com/mholt/caddy) or [`nginx`](https://www.nginx.com/resources/wiki/)) -- BucketAnalytics, BucketMetrics, BucketLogging (可以用 [存储桶通知](https://docs.min.io/cn/minio-client-complete-guide#events) API) -- BucketRequestPayment - -#### MinIO不支持的Amazon S3 Object API. - -- ObjectACL (可以用 [存储桶策略](https://docs.min.io/cn/minio-client-complete-guide#policy)) -- ObjectTorrent - -### MinIO上的对象名称限制 -在Windows上对象名称不能包含`^*|\/&";`这些特殊字符,如果其他系统文件名不支持这些特殊字符,那么在这些系统上对象名称也不能使用这些特殊字符。请注意,此列表并不详尽,并且取决于文件系统本身的维护者。 \ No newline at end of file diff --git a/docs/zh_CN/multi-tenancy/README.md b/docs/zh_CN/multi-tenancy/README.md deleted file mode 100644 index c61eb4add..000000000 --- a/docs/zh_CN/multi-tenancy/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# MinIO多租户(Multi-tenant)部署指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -## 单机部署 - -要在单台机器上托管多个租户,为每个租户运行一个MinIO server,使用不同的HTTPS端口、配置和数据目录。 - -#### 示例1:单主机,单磁盘 - -以下示例在一块磁盘上托管三个租户。 -```sh -minio --config-dir ~/tenant1 server --address :9001 /data/tenant1 -minio --config-dir ~/tenant2 server --address :9002 /data/tenant2 -minio --config-dir ~/tenant3 server --address :9003 /data/tenant3 -``` - -![示例1](https://github.com/minio/minio/blob/master/docs/screenshots/Example-1.jpg?raw=true) - -#### 示例2:单主机,多块磁盘 (erasure code) - -以下示例在多块磁盘上托管三个租户。 -```sh -minio --config-dir ~/tenant1 server --address :9001 /disk1/data/tenant1 /disk2/data/tenant1 /disk3/data/tenant1 /disk4/data/tenant1 -minio --config-dir ~/tenant2 server --address :9002 /disk1/data/tenant2 /disk2/data/tenant2 /disk3/data/tenant2 /disk4/data/tenant2 -minio --config-dir ~/tenant3 server --address :9003 /disk1/data/tenant3 /disk2/data/tenant3 /disk3/data/tenant3 /disk4/data/tenant3 -``` -![示例2](https://github.com/minio/minio/blob/master/docs/screenshots/Example-2.jpg?raw=true) - -## 分布式部署 -要在分布式环境中托管多个租户,同时运行多个分布式MinIO实例。 - -#### 示例3 : 多主机,多块磁盘 (erasure code) - -以下示例在一个4节点集群中托管三个租户。在4个节点里都执行下列命令: - -```sh -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio --config-dir ~/tenant1 server --address :9001 http://192.168.10.11/data/tenant1 http://192.168.10.12/data/tenant1 http://192.168.10.13/data/tenant1 http://192.168.10.14/data/tenant1 - -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio --config-dir ~/tenant2 server --address :9002 http://192.168.10.11/data/tenant2 http://192.168.10.12/data/tenant2 http://192.168.10.13/data/tenant2 http://192.168.10.14/data/tenant2 - -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio --config-dir ~/tenant3 server --address :9003 http://192.168.10.11/data/tenant3 http://192.168.10.12/data/tenant3 http://192.168.10.13/data/tenant3 http://192.168.10.14/data/tenant3 -``` - -![示例3](https://github.com/minio/minio/blob/master/docs/screenshots/Example-3.jpg?raw=true) - -## 云端可伸缩部署 -对于大型多租户MinIO部署,我们建议使用一个流行的容器编排平台,比如Kubernetes、DC/OS,或者是Docker Swarm.参考 [这个文档](https://docs.min.io/cn/minio-deployment-quickstart-guide) ,学习如何在编排平台中使用MinIO。 - - diff --git a/docs/zh_CN/orchestration/README.md b/docs/zh_CN/orchestration/README.md deleted file mode 100644 index c5ea34cea..000000000 --- a/docs/zh_CN/orchestration/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# MinIO部署快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -MinIO是一个[云原生](https://baike.baidu.com/item/Cloud%20Native/19865304?fr=aladdin)的应用程序,旨在在多租户环境中以可持续的方式进行扩展。编排(orchestration)平台为MinIO的扩展提供了非常好的支撑。以下是各种编排平台的MinIO部署文档: - -| Orchestration平台| -|:---| -| [`Docker Swarm`](https://docs.min.io/cn/deploy-minio-on-docker-swarm) | -| [`Docker Compose`](https://docs.min.io/cn/deploy-minio-on-docker-compose) | -| [`Kubernetes`](https://docs.min.io/cn/deploy-minio-on-kubernetes) | -| [`DC/OS`](https://docs.min.io/cn/deploy-minio-on-dc-os) | - -## 为什么说MinIO是云原生的(cloud-native)? -云原生这个词代表的是一些思想的集合,比如微服务部署,可伸缩,而不是说把一个单体应用改造成容器部署。一个云原生的应用在设计时就考虑了移植性和可伸缩性,而且可以通过简单的复制即可实现水平扩展。现在兴起的编排平台,像Swarm、Kubernetes以及DC/OS,让大规模集群的复制和管理变得前所未有的简单,哪里不会点哪里。 - -容器提供了隔离的应用执行环境,编排平台通过容器管理以及复制功能提供了无缝的扩展。MinIO继承了这些,针对每个租户提供了存储环境的隔离。 - -MinIO是建立在云原生的基础上,有纠删码、分布式和共享存储这些特性。MinIO专注于并且只专注于存储,而且做的还不错。它可以通过编排平台复制一个MinIO实例就实现了水平扩展。 - -> 在一个云原生环境中,伸缩性不是应用的一个功能而是编排平台的功能。 - -现在的应用、数据库,key-store这些,很多都已经部署在容器中,并且通过编排平台进行管理。MinIO提供了一个健壮的、可伸缩、AWS S3兼容的对象存储,这是MinIO的立身之本,凭此在云原生应用中占据一席之地。 - -![Cloud-native](https://github.com/minio/minio/blob/master/docs/screenshots/Minio_Cloud_Native_Arch.jpg?raw=true) diff --git a/docs/zh_CN/orchestration/dcos/README.md b/docs/zh_CN/orchestration/dcos/README.md deleted file mode 100644 index a80b6cb02..000000000 --- a/docs/zh_CN/orchestration/dcos/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# 在 DC/OS上部署minio [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -要在DC/OS上部署MinIO,可以使用我们的 [official universe package](https://github.com/mesosphere/universe/tree/version-3.x/repo/packages/M/minio/6). - -## 1. 前提条件 - - - DC/OS 1.9或更新版本 - - [Marathon-LB](https://dcos.io/docs/1.9/usage/service-discovery/marathon-lb/usage/) 必须安装并启动。 - - 识别Marathon-LB或者一个指向Marathon-LB的public agent(s)的可用主机名的 [IP of the public agent](https://dcos.io/docs/1.9/administration/locate-public-agent/) 。 - - -## 2. 设置MinIO - -你可以使用DC/OS GUI或者CLI安装MinIO Universe package。 - -### 使用DC/OS GUI安装MinIO -- 访问DC/OS admin页面,然后点击左边栏的Universe,然后点击Packages页签,搜索MinIO,点击左边栏的```Install```按钮。 - -- 点击按钮`Install Package`进行一键安装。你可以通过`host:9000`访问你的MinIO server,其中`host`是Marathon-LB所在服务器的IP或者主机名。 `minio` 和 `minio123` 分别是默认的access key和secret key。 - -- 更多关于自定义安装的内容,请看[这里](https://github.com/dcos/zh_CN/examples/blob/master/minio/1.9/README.md#minio-installation-using-gui). - -### 使用DC/OS CLI安装MinIO - -使用命令行安装, 输入 - -```bash -$ dcos package install minio -``` - -## 3. 卸载MinIO - -你确定要这么做吗,如果你真要这么做,我们也不会像国内的软件那么无赖。如需卸载,请输入 - -```bash -$ dcos package uninstall minio -``` - -### 了解更多 - -- [MinIO Erasure Code QuickStart Guide](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) - -- [DC/OS Project](https://docs.mesosphere.com/) - diff --git a/docs/zh_CN/orchestration/docker-compose/README.md b/docs/zh_CN/orchestration/docker-compose/README.md deleted file mode 100644 index 733c27783..000000000 --- a/docs/zh_CN/orchestration/docker-compose/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# 使用Docker Compose部署MinIO [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -Docker Compose允许定义和运行单主机,多容器Docker应用程序。 - -使用Compose,您可以使用Compose文件来配置MinIO服务。 然后,使用单个命令,您可以通过你的配置创建并启动所有分布式MinIO实例。 分布式MinIO实例将部署在同一主机上的多个容器中。 这是建立基于分布式MinIO的开发,测试和预发布环境的好方法。 - -## 1. 前提条件 - -* 熟悉 [Docker Compose](https://docs.docker.com/compose/overview/). -* Docker已经在本机安装,从[这里](https://www.docker.com/community-edition#/download)下载相关的安装器。 - -## 2. 在Docker Compose上运行分布式MinIO - -在Docker Compose上部署分布式MinIO,请下载[docker-compose.yaml](https://github.com/minio/minio/blob/master/docs/orchestration/docker-compose/docker-compose.yaml?raw=true)到你的当前工作目录。Docker Compose会pull MinIO Docker Image,所以你不需要手动去下载MinIO binary。然后运行下面的命令 - -### GNU/Linux and macOS - -```sh -docker-compose pull -docker-compose up -``` - -### Windows - -```sh -docker-compose.exe pull -docker-compose.exe up -``` - -现在每个实例都可以访问,端口从9001到9004,请在浏览器中访问http://127.0.0.1:9001/ - -### 注意事项 - -* 默认情况下Docker Compose file使用的是最新版的MinIO server的Docker镜像,你可以修改image tag来拉取指定版本的[MinIO Docker image](https://hub.docker.com/r/minio/minio/). - -* 默认情况下会创建4个minio实例,你可以添加更多的MinIO服务(最多总共16个)到你的MinIO Compose deployment。添加一个服务 - * 复制服务定义并适当地更改新服务的名称。 - * 更新每个服务中的命令部分。 - * 更新要为新服务公开的端口号。 另外,请确保分配给新服务的端口尚未使用。 - - 关于分布式MinIO的更多资料,请访问[这里](https://docs.min.io/cn/distributed-minio-quickstart-guide). - -* Docker compose file中的MinIO服务使用的端口是9001到9004,这允许多个服务在主机上运行。 - -### 了解更多 -- [Docker Compose概述](https://docs.docker.com/compose/overview/) -- [MinIO Docker快速入门](https://docs.min.io/cn/minio-docker-quickstart-guide) -- [使用Docker Swarm部署MinIO](https://docs.min.io/cn/deploy-minio-on-docker-swarm) -- [MinIO纠删码快速入门](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) diff --git a/docs/zh_CN/orchestration/docker-swarm/README.md b/docs/zh_CN/orchestration/docker-swarm/README.md deleted file mode 100644 index 6afa0dfcd..000000000 --- a/docs/zh_CN/orchestration/docker-swarm/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# 使用Docker Swarm部署MinIO [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -Docker Engine在Swarm模式下提供集群管理和编排功能。 MinIO服务器可以在Swarm的分布式模式下轻松部署,创建一个多租户,高可用性和可扩展的对象存储。 - -从[Docker Engine v1.13.0](https://blog.docker.com/2017/01/whats-new-in-docker-1-13/) (Docker Compose v3.0)开始, Docker Swarm和Compose 二者[cross-compatible](https://docs.docker.com/compose/compose-file/#version-3)。这允许将Compose file用作在Swarm上部署服务的模板。 我们使用Docker Compose file创建分布式MinIO设置。 - -## 1. 前提条件 - -* 熟悉[Swarm mode key concepts](https://docs.docker.com/engine/swarm/key-concepts/). -* Docker engine v1.13.0运行在[networked host machines]集群上(https://docs.docker.com/engine/swarm/swarm-tutorial/#/three-networked-host-machines). - -## 2. 创建Swarm -在管理节点上创建一个swarm,请运行下面的命令 - -```shell -docker swarm init --advertise-addr -``` -一旦swarm初使化了,你可以看到下面的响应信息 - -```shell -docker swarm join \ - --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ - 192.168.99.100:2377 -``` - -你现在可以运行上述命令[添加worker节点](https://docs.docker.com/engine/swarm/swarm-tutorial/add-nodes/)到swarm。更多关于创建swarm的细节步骤,请访问[Docker documentation site](https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/). - -## 3. 为MinIO创建Docker secret - -```shell -echo "AKIAIOSFODNN7EXAMPLE" | docker secret create access_key - -echo "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" | docker secret create secret_key - -``` - -## 4. 部署分布式minio服务 - -在你的Swarm master上下载[Docker Compose file](https://github.com/minio/minio/blob/master/docs/orchestration/docker-swarm/docker-compose-secrets.yaml?raw=true) ,然后运行下面的命令 - -```shell -docker stack deploy --compose-file=docker-compose-secrets.yaml minio_stack -``` - -这将把Compose file里描述的服务部署为Docker stack`minio_stack`。 更多 `docker stack` [命令参考](https://docs.docker.com/engine/reference/commandline/stack/)。 - -在stack成功部署之后,你可以通过[MinIO Client](https://docs.min.io/cn/minio-client-complete-guide) `mc` 或者浏览器访问http://[Node_Public_IP_Address]:[Expose_Port_on_Host]来访问你的MinIO server。 - -## 4. 删除分布式MinIO services - -删除分布式MinIO services以及相关的网络,请运行下面的命令 - -```shell -docker stack rm minio_stack -``` -Swarm不会自动删除为MinIO服务创建的host volumes,如果下次新的MinIO服务不熟到swarm上,可能会导致损坏。因此,我们建议手动删除所有MinIO使用的volumes。为此,到每一个swarm的节点上,列出所有的volumes - -```shell -docker volume ls -``` -然后删除`minio_stack` volumes - -```shell -docker volume rm volume_name -``` - -### 注意事项 - -* 默认情况下Docker Compose file使用的是最新版的MinIO server的Docker镜像,你可以修改image tag来拉取指定版本的[MinIO Docker image](https://hub.docker.com/r/minio/minio/). - -* 默认情况下会创建4个minio实例,你可以添加更多的MinIO服务(最多总共16个)到你的MinIO Comose deployment。添加一个服务 - * 复制服务定义并适当地更改新服务的名称。 - * 更新每个服务中的命令部分。 - * 更新要为新服务公开的端口号。 另外,请确保分配给新服务的端口尚未使用。 - - 关于分布式MinIO的更多资料,请访问[这里](https://docs.min.io/cn/distributed-minio-quickstart-guide). - -* 默认情况下,MinIO服务使用的是`local` volume driver. 更多配置选项,请访问[Docker documentation](https://docs.docker.com/compose/compose-file/#/volume-configuration-reference) 。 - -* Docker compose file中的MinIO服务使用的端口是9001到9004,这允许多个服务在主机上运行。更多配置选项,请访问[Docker documentation](https://docs.docker.com/compose/compose-file/#/ports). - -* Docker Swarm默认使用的是ingress做负载均衡,你可以跟据需要配置[external load balancer based](https://docs.docker.com/engine/swarm/ingress/#/configure-an-external-load-balancer)。 - -### 了解更多 -- [Docker Swarm mode概述](https://docs.docker.com/engine/swarm/) -- [MinIO Docker快速入门](https://docs.min.io/cn/minio-docker-quickstart-guide) -- [使用Docker Compose部署MinIO](https://docs.min.io/cn/deploy-minio-on-docker-compose) -- [MinIO纠删码快速入门](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) diff --git a/docs/zh_CN/orchestration/kubernetes-yaml/README.md b/docs/zh_CN/orchestration/kubernetes-yaml/README.md deleted file mode 100644 index e5e668c13..000000000 --- a/docs/zh_CN/orchestration/kubernetes-yaml/README.md +++ /dev/null @@ -1,540 +0,0 @@ -# 使用Kubernetes做MinIO的云原生部署 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -## 目录 -- [前提条件](#前提条件) -- [MinIO独立模式部署](#MinIO-Standalone模式部署) - - [MinIO独立模式快速入门](#MinIO独立模式快速入门) - - [创建持久卷声明](#MinIO独立模式快速入门) - - [创建MinIO的部署](#创建MinIO的部署) - - [创建Miniio服务](#创建Miniio服务) - - [更新已有的MinIO部署](#更新已有的MinIO部署) - - [独立模式资源清理](#独立模式资源清理) - -- [MinIO分布式服务部署](#MinIO分布式服务部署) - - [分布式快速入门](#分布式快速入门) - - [创建MinIO Headless服务](#创建MinIO-Headless服务) - - [创建MinIO Statefulset](#创建MinIO-Statefulset) - - [创建负载均衡服务](#创建负载均衡服务) - - [更新已存在的MinIO StatefulSet](#更新已存在的MinIO-StatefulSet) - - [分布式模式资源清理](#分布式模式资源清理) - -- [MinIO GCS 网关部署](#MinIO-GCS网关部署) - - [GCS 网关快速入门](#GCS-网关快速入门) - - [创建GCS凭据](#创建GCS凭据) - - [创建MinIO GCS Gateway部署](#创建MinIO-GCS-Gateway部署) - - [创建MinIO LoadBalancer服务](#创建MinIO-LoadBalancer服务) - - [更新现有的MinIO GCS部署](#更新现有的MinIO-GCS部署) - - [GCS网关资源清理](#GCS网关资源清理) - -## 前提条件 - -运行该示例,你需要安装并运行Kubernetes版本>=1.4的集群,而且已经安装 [`kubectl`](https://kubernetes.io/docs/tasks/kubectl/install/) 命令行工具。请访问 -[getting started guides](https://kubernetes.io/docs/getting-started-guides/)获取响应平台的安装指导。 -## MinIO Standalone模式部署 - -以下部分描述了如何在Kubernetes上部署一个独立的 [MinIO](https://min.io/) 服务。部署使用的是Docker Hub上的 [官方MinIO Docker image](https://hub.docker.com/r/minio/minio/~/dockerfile/) 。 - -此部分使用了以下Kubernetes的核心组件: - -- [_Pods_](https://kubernetes.io/docs/user-guide/pods/) -- [_Services_](https://kubernetes.io/docs/user-guide/services/) -- [_Deployments_](https://kubernetes.io/docs/user-guide/deployments/) -- [_Persistent Volume Claims_](https://kubernetes.io/docs/user-guide/persistent-volumes/#persistentvolumeclaims) - -### MinIO独立模式快速入门 - -运行下面的命令快速启动 - -```sh -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-standalone-pvc.yaml?raw=true -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-standalone-deployment.yaml?raw=true -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-standalone-service.yaml?raw=true -``` - -### 创建持久卷声明 - -MinIO需要持久卷来存储对象。如果没有持久卷,MinIO实例中的数据将会存到容器的文件系统中,而且在容器重启时会被清除的干干净净。 -创建一个持久卷声明(PVC),为MinIO实例请求存储。Kubernetes寻找与群集中的PVC请求匹配的PV,并自动将其绑定到PVC。 - -这是一个PVC的描述 - -```sh -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - # 此名称唯一标识PVC。 将在以下部署中使用。 - name: minio-pv-claim - annotations: - volume.alpha.kubernetes.io/storage-class: anything - labels: - app: minio-storage-claim -spec: - # 关于 access modes的更多细节,访问这里: http://kubernetes.io/docs/user-guide/persistent-volumes/#access-modes - accessModes: - - ReadWriteOnce - resources: - # This is the request for storage. Should be available in the cluster. - requests: - storage: 10Gi -``` - -创建一个持久卷声明 - -```sh -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-standalone-pvc.yaml?raw=true -persistentvolumeclaim "minio-pv-claim" created -``` - -### 创建MinIO的部署 - -部署封装了副本集和pod - 因此,如果pod掉线,复制控制器会确保另一个pod自动出现。 这样,您就不必担心pod失败,并且可以提供稳定的MinIO服务。 - -这是一个部署的描述 - -```sh -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - # This name uniquely identifies the Deployment - name: minio-deployment -spec: - strategy: - type: Recreate - template: - metadata: - labels: - # Label is used as selector in the service. - app: minio - spec: - # Refer to the PVC created earlier - volumes: - - name: data - persistentVolumeClaim: - # Name of the PVC created earlier - claimName: minio-pv-claim - containers: - - name: minio - # Pulls the default MinIO image from Docker Hub - image: minio/minio:RELEASE.2017-05-05T01-14-51Z - args: - - server - - /data - env: - # MinIO access key and secret key - - name: MINIO_ROOT_USER - value: "minio" - - name: MINIO_ROOT_PASSWORD - value: "minio123" - ports: - - containerPort: 9000 - # Mount the volume into the pod - volumeMounts: - - name: data # must match the volume name, above - mountPath: "/data" -``` - -创建一个部署 - -```sh -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-standalone-deployment.yaml?raw=true -deployment "minio-deployment" created -``` - -### 创建Miniio服务 - -现在您正在运行MinIO部署,您可能希望在内部(集群内)访问它,或者将其作为服务暴露在外部(集群外部,也可能是公共Internet)IP地址,具体取决于用例。 您可以使用服务来实现此目的。 有三种主要的服务类型 - 默认类型是ClusterIP,它将集群内部的连接暴露给服务。 NodePort和LoadBalancer是向外部流量提供服务的两种类型。 - -在此示例中,我们通过创建LoadBalancer服务来公开MinIO部署。 -这是服务描述。 - -```sh -apiVersion: v1 -kind: Service -metadata: - name: minio-service -spec: - type: LoadBalancer - ports: - - port: 9000 - targetPort: 9000 - protocol: TCP - selector: - app: minio -``` -创建MinIO服务 - -```sh -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-standalone-service.yaml?raw=true -service "minio-service" created -``` - -`LoadBalancer` 服务需要几分钟才能启动。 要检查服务是否已成功创建,请运行命令 - -```sh -kubectl get svc minio-service -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -minio-service 10.55.248.23 104.199.249.165 9000:31852/TCP 1m -``` - -### 更新已有的MinIO部署 - -您可以更新现有的MinIO部署以使用较新的MinIO版本。 为此,请使用`kubectl set image`命令: - -```sh -kubectl set image deployment/minio-deployment minio= -``` - -Kubernetes将重新启动部署以更新镜像。 成功更新后,您将收到以下消息: - -``` -deployment "minio-deployment" image updated -``` - -### 独立模式资源清理 - -你可以清理集群占用的资源,请运行: - -```sh -kubectl delete deployment minio-deployment \ -&& kubectl delete pvc minio-pv-claim \ -&& kubectl delete svc minio-service -``` - -## MinIO分布式服务部署 - -以下文档介绍了在Kubernetes上部署[分布式MinIO](https://docs.min.io/cn/distributed-minio-quickstart-guide)服务器的过程。 本示例使用Docker Hub的[官方MinIO Docker镜像](https://hub.docker.com/r/minio/minio/~/dockerfile/)。 - -此示例使用以下Kubernetes的核心组件: - -- [_Pods_](https://kubernetes.io/docs/concepts/workloads/pods/pod/) -- [_Services_](https://kubernetes.io/docs/concepts/services-networking/service/) -- [_Statefulsets_](https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/) - -### 分布式快速入门 - -运行下面的命令快速启动 - -```sh -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-distributed-headless-service.yaml?raw=true -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-distributed-statefulset.yaml?raw=true -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-distributed-service.yaml?raw=true -``` - -###创建MinIO Headless服务 - -Headless服务控制在其中创建StatefulSets的域。此服务管理的域采用以下格式:`$(service name).$(namespace).svc.cluster.local`(其中“cluster.local”是集群域),此域中的pod采用形式: `$(pod-name-{i}).$(service name).$(namespace).svc.cluster.local`。这里需要DNS来解析在Statefulset中创建的每个pods的URL。 - -这是Headless service的描述。 - -```sh -apiVersion: v1 -kind: Service -metadata: - name: minio - labels: - app: minio -spec: - clusterIP: None - ports: - - port: 9000 - name: minio - selector: - app: minio -``` - -创建Headless服务 - -```sh -$ kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-distributed-headless-service.yaml?raw=true -service "minio" created -``` - -###创建MinIO Statefulset - -StatefulSet为每个pod提供确定性名称和唯一身份,从而轻松部署有状态的分布式应用程序。 要启动分布式MinIO,您需要将驱动器位置作为参数传递到minio服务的命令。 然后,您需要在所有参与的pod上运行相同的命令。 StatefulSets提供了一个完美的方式来处理这个要求。 - -这是Statefulset的描述。 - -```sh -apiVersion: apps/v1beta1 -kind: StatefulSet -metadata: - name: minio -spec: - serviceName: minio - replicas: 4 - template: - metadata: - annotations: - pod.alpha.kubernetes.io/initialized: "true" - labels: - app: minio - spec: - containers: - - name: minio - env: - - name: MINIO_ROOT_USER - value: "minio" - - name: MINIO_ROOT_PASSWORD - value: "minio123" - image: minio/minio:RELEASE.2017-05-05T01-14-51Z - args: - - server - - http://minio-0.minio.default.svc.cluster.local/data - - http://minio-1.minio.default.svc.cluster.local/data - - http://minio-2.minio.default.svc.cluster.local/data - - http://minio-3.minio.default.svc.cluster.local/data - ports: - - containerPort: 9000 - # These volume mounts are persistent. Each pod in the PetSet - # gets a volume mounted based on this field. - volumeMounts: - - name: data - mountPath: /data - # These are converted to volume claims by the controller - # and mounted at the paths mentioned above. - volumeClaimTemplates: - - metadata: - name: data - annotations: - volume.alpha.kubernetes.io/storage-class: anything - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi -``` - -创建Statefulset - -```sh -$ kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-distributed-statefulset.yaml?raw=true -statefulset "minio" created -``` - -### 创建负载均衡服务 - -现在您已经运行了MinIO statefulset,您可能希望在内部(集群内)访问它,或将其作为服务暴露在外部(集群外,也可能是公用Internet)的IP地址,具体取决于用例。 您可以使用服务来实现此目的。 有三种主要的服务类型 - 默认类型是ClusterIP,它将集群内部的连接暴露给服务。 NodePort和LoadBalancer是向外部流量提供服务的两种类型。 - -在此示例中,我们通过创建LoadBalancer服务来公开MinIO部署。 - 这是服务描述。 - -```sh -apiVersion: v1 -kind: Service -metadata: - name: minio-service -spec: - type: LoadBalancer - ports: - - port: 9000 - targetPort: 9000 - protocol: TCP - selector: - app: minio -``` -创建MinIO service - -```sh -$ kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-distributed-service.yaml?raw=true -service "minio-service" created -``` - -`LoadBalancer` 服务需要几分钟才能启动。 要检查服务是否已成功创建,请运行命令 - -```sh -$ kubectl get svc minio-service -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -minio-service 10.55.248.23 104.199.249.165 9000:31852/TCP 1m -``` - -###更新已经存在的MinIO StatefulSet -您可以更新现有的MinIO StatefulSet以使用较新的MinIO版本。 为此,请使用`kubectl patch statefulset`命令: - -```sh -kubectl patch statefulset minio --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":""}]' -``` - -成功更新后,您应该会看到下面的输出 - -``` -statefulset "minio" patched -``` - -然后如下所示,逐一删除StatefulSet中的所有pod。 Kubernetes将使用新的镜像为您重新启动那些pod。 - -```sh -kubectl delete minio-0 -``` - -### 分布式模式资源清理 - -你可以使用以下命令清理集群 -```sh -kubectl delete statefulset minio \ -&& kubectl delete svc minio \ -&& kubectl delete svc minio-service -``` - -## MinIO GCS网关部署 - -以下部分介绍在Kubernetes上部署[MinIO](https://min.io/)GCS Gateway的过程。 部署使用Docker Hub的[官方MinIO Docker映像](https://hub.docker.com/r/minio/minio/~/dockerfile/)。 - -此示例使用以下Kubernetes的核心组件: - -- [_Secrets_](https://kubernetes.io/docs/concepts/configuration/secret/) -- [_Services_](https://kubernetes.io/docs/user-guide/services/) -- [_Deployments_](https://kubernetes.io/docs/user-guide/deployments/) - -### GCS 网关快速入门 - -按照 [这里](https://github.com/minio/minio/blob/master/docs/gateway/gcs.md#create-service-account-key-for-gcs-and-get-the-credentials-file)描述的步骤创建Google云服务认证凭据文件。 - -使用上面生成的文件来创建一个Kubernetes`secret`。 - -```sh -kubectl create secret generic gcs-credentials --from-file=/path/to/gcloud/credentials/application_default_credentials.json -``` - -下载 `minio-gcs-gateway-deployment.yaml` - -```sh -wget https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-gcs-gateway-deployment.yaml?raw=true -``` - -使用你的GCS project ID更新 `gcp_project_id`部分的内容,然后运行 - -```sh -kubectl create -f minio-gcs-gateway-deployment.yaml -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-gcs-gateway-service.yaml?raw=true -``` - -### 创建GCS凭据 - -`凭据`旨在保存敏感信息,例如密码,OAuth令牌和ssh密钥。 将这些信息放在一个凭据中比将其逐字地放在pod定义或docker镜像中更安全,更灵活。 - -按照 [这里](https://github.com/minio/minio/blob/master/docs/gateway/gcs.md#create-service-account-key-for-gcs-and-get-the-credentials-file)描述的步骤创建Google云服务认证凭据文件。 - -使用上面生成的文件来创建一个Kubernetes`secret`。 - -```sh -kubectl create secret generic gcs-credentials --from-file=/path/to/gcloud/credentials/application_default_credentials.json -``` - -### 创建MinIO GCS Gateway部署 - -部署封装了副本集和pod - 因此,如果pod掉线,复制控制器会确保另一个pod自动出现。 这样,您就不必担心pod失败,并且可以提供稳定的MinIO服务。 - -MinIO Gateway使用GCS作为其存储后端,需要使用GCP“projectid”来识别您的凭据。 使用GCS项目ID更新“gcp_project_id”部分。 这是部署描述。 - -```sh -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - # This name uniquely identifies the Deployment - name: minio-deployment -spec: - strategy: - type: Recreate - template: - metadata: - labels: - # Label is used as selector in the service. - app: minio - spec: - # Refer to the secret created earlier - volumes: - - name: gcs-credentials - secret: - # Name of the Secret created earlier - secretName: gcs-credentials - containers: - - name: minio - # Pulls the default MinIO image from Docker Hub - image: minio/minio:RELEASE.2017-08-05T00-00-53Z - args: - - gateway - - gcs - - gcp_project_id - env: - # MinIO access key and secret key - - name: MINIO_ROOT_USER - value: "minio" - - name: MINIO_ROOT_PASSWORD - value: "minio123" - # Google Cloud Service uses this variable - - name: GOOGLE_APPLICATION_CREDENTIALS - value: "/etc/credentials/application_default_credentials.json" - ports: - - containerPort: 9000 - # Mount the volume into the pod - volumeMounts: - - name: gcs-credentials - mountPath: "/etc/credentials" - readOnly: true -``` - -创建部署 - -```sh -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-gcs-gateway-deployment.yaml?raw=true -deployment "minio-deployment" created -``` - -### 创建MinIO LoadBalancer服务 - -现在您正在运行MinIO,您可能希望在内部(集群内)访问它,或者将其作为服务暴露在外部(集群外部,也可能是公共Internet)IP地址,具体取决于用例。 您可以使用服务来实现此目的。 有三种主要的服务类型 - 默认类型是ClusterIP,它将集群内部的连接暴露给服务。 NodePort和LoadBalancer是向外部流量提供服务的两种类型。 - -在此示例中,我们通过创建LoadBalancer服务来暴露MinIO。 这是服务描述。 - -```sh -apiVersion: v1 -kind: Service -metadata: - name: minio-service -spec: - type: LoadBalancer - ports: - - port: 9000 - targetPort: 9000 - protocol: TCP - selector: - app: minio -``` -创建MinIO服务 - -```sh -kubectl create -f https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes-yaml/minio-gcs-gateway-service.yaml?raw=true -service "minio-service" created -``` - -`LoadBalancer`服务需要几分钟才能启动。 要检查服务是否已成功创建,请运行命令 - -```sh -kubectl get svc minio-service -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -minio-service 10.55.248.23 104.199.249.165 9000:31852/TCP 1m -``` - -### 更新现有的MinIO GCS部署 - -您可以更新现有的MinIO部署以使用较新的MinIO版本。 为此,请使用`kubectl set image`命令: - -```sh -kubectl set image deployment/minio-deployment minio= -``` - -Kubernetes将重新启动部署以更新镜像。 成功更新后,您将收到以下消息: -``` -deployment "minio-deployment" image updated -``` - -### GCS网关资源清理 - -你可以使用下面的命令清理集群 - -```sh -kubectl delete deployment minio-deployment \ -&& kubectl delete secret gcs-credentials -``` \ No newline at end of file diff --git a/docs/zh_CN/orchestration/kubernetes/README.md b/docs/zh_CN/orchestration/kubernetes/README.md deleted file mode 100644 index dbca9e5fc..000000000 --- a/docs/zh_CN/orchestration/kubernetes/README.md +++ /dev/null @@ -1,154 +0,0 @@ -# 使用Kubernetes部署MinIO [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -Kubernetes的部署和状态集提供了在独立,分布式或共享模式下部署MinIO服务器的完美平台。 在Kubernetes上部署MinIO有多种选择,您可以选择最适合您的。 - -- MinIO [Helm](https://helm.sh) Chart通过一个简单的命令即可提供自定义而且简单的MinIO部署。更多关于MinIO Helm部署的资料,请访问[这里](#prerequisites). - -- 你也可以浏览Kubernetes [MinIO示例](https://github.com/minio/minio/blob/master/docs/orchestration/kubernetes/README.md) ,通过`.yaml`文件来部署MinIO。 - - -## 1. 前提条件 - -* 默认standalone模式下,需要开启Beta API的Kubernetes 1.4+。 -* [distributed 模式](#distributed-minio),需要开启Beta API的Kubernetes 1.5+。 -* 底层支持PV provisioner。 -* 你的K8s集群里需要有Helm package manager [installed](https://github.com/kubernetes/helm#install)。 - -## 2. 使用Helm Chart部署MinIO - -安装 MinIO chart - -```bash -$ helm install stable/minio -``` -以上命令以默认配置在Kubernetes群集上部署MinIO。 以下部分列出了MinIO图表的所有可配置参数及其默认值。 - -### 配置 - -| 参数 | 描述 | 默认值 | -|----------------------------|-------------------------------------|---------------------------------------------------------| -| `image` | MinIO镜像名称 | `minio/minio` | -| `imageTag` | MinIO镜像tag. 可选值在 [这里](https://hub.docker.com/r/minio/minio/tags/).| `RELEASE.2017-08-05T00-00-53Z`| -| `imagePullPolicy` | Image pull policy | `Always` | -| `mode` | MinIO server模式 (`standalone`, `shared` 或者 `distributed`)| `standalone` | -| `numberOfNodes` | 节点数 (仅对分布式模式生效). 可选值 4 <= x <= 16 | `4` | -| `accessKey` | 默认access key | `AKIAIOSFODNN7EXAMPLE` | -| `secretKey` | 默认secret key | `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` | -| `configPath` | 默认配置文件路径 | `~/.minio` | -| `mountPath` | 默认挂载路径| `/export` | -| `serviceType` | Kubernetes service type | `LoadBalancer` | -| `servicePort` | Kubernetes端口 | `9000` | -| `persistence.enabled` | 是否使用持久卷存储数据 | `true` | -| `persistence.size` | 持久卷大小 | `10Gi` | -| `persistence.storageClass` | 持久卷类型 | `generic` | -| `persistence.accessMode` | ReadWriteOnce 或者 ReadOnly | `ReadWriteOnce` | -| `resources` | CPU/Memory 资源需求/限制 | Memory: `256Mi`, CPU: `100m` | - -你可以通过`--set key=value[,key=value]`给`helm install`。 比如, - -```bash -$ helm install --name my-release \ - --set persistence.size=100Gi \ - stable/minio -``` - -上述命令部署了一个带上100G持久卷的MinIO服务。 - -或者,您可以提供一个YAML文件,用于在安装chart时指定参数值。 例如, - -```bash -$ helm install --name my-release -f values.yaml stable/minio -``` - -### 分布式MinIO - -默认情况下,此图表以独立模式提供MinIO服务器。 要在[分布式模式](https://docs.min.io/cn/distributed-minio-quickstart-guide)中配置MinIO服务器,请将`mode`字段设置为`distributed`, - -```bash -$ helm install --set mode=distributed stable/minio -``` - -上述命令部署了个带有4个节点的分布式MinIO服务器。 要更改分布式MinIO服务器中的节点数,请设置`numberOfNodes`属性。 - - -```bash -$ helm install --set mode=distributed,numberOfNodes=8 stable/minio -``` - -上述命令部署了个带有8个节点的分布式MinIO服务器。注意一下,`numberOfNodes`取值范围是[4,16]。 - -#### StatefulSet [限制](http://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/#limitations),适用于分布式MinIO - -* StatefulSets需要持久化存储,所以如果 `mode`设成 `distributed`的话,`persistence.enabled`参数不生效。 -* 卸载分布式MinIO版本时,需要手动删除与StatefulSet关联的卷。 - -### Shared MinIO - -如需采用[shared mode](https://github.com/minio/minio/blob/master/docs/shared-backend/README.md)部署MinIO, 将`mode` 设为`shared`, - -```bash -$ helm install --set mode=shared stable/minio -``` - -上述命令规定了4个MinIO服务器节点,一个存储。 要更改共享的MinIO部署中的节点数,请设置`numberOfNodes`字段, - -```bash -$ helm install --set mode=shared,numberOfNodes=8 stable/minio -``` - -上述命令规定了MinIO服务有8个节点,采用shared模式。 - -### 持久化 - -这里规定了PersistentVolumeClaim并将相应的持久卷挂载到默认位置`/export`。 您需要Kubernetes集群中的物理存储才能使其工作。 如果您宁愿使用`emptyDir`,请通过以下方式禁用PersistentVolumeClaim: - -```bash -$ helm install --set persistence.enabled=false stable/minio -``` - -> *"当Pod分配给节点时,首先创建一个emptyDir卷,只要该节点上的Pod正在运行,它就会存在。 当某个Pod由于任何原因从节点中删除时,emptyDir中的数据将永久删除。"* - -## 3. 使用Helm更新MinIO版本 - -您可以更新现有的MinIO Helm Release以使用较新的MinIO Docker镜像。 为此,请使用`helm upgrade`命令: - -```bash -$ helm upgrade --set imageTag= stable/minio -``` - -如果更新成功,你可以看到下面的输出信息 - -```bash -Release "your-helm-release" has been upgraded. Happy Helming! -``` - -## 4. 卸载Chart - -假设你的版本被命名为`my-release`,使用下面的命令删除它: - -```bash -$ helm delete my-release -``` - -该命令删除与chart关联的所有Kubernetes组件,并删除该release。 - -### 提示 - -* 在Kubernetes群集中运行的chart的实例称为release。 安装chart后,Helm会自动分配唯一的release名称。 你也可以通过下面的命令设置你心仪的名称: - -```bash -$ helm install --name my-release stable/minio -``` - -* 为了覆盖默认的秘钥,可在运行helm install时将access key和secret key做为参数传进去。 - -```bash -$ helm install --set accessKey=myaccesskey,secretKey=mysecretkey \ - stable/minio -``` - -### 了解更多 - -- [MinIO纠删码快速入门](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) -- [Kubernetes文档](https://kubernetes.io/docs/home/) -- [Helm package manager for kubernetes](https://helm.sh/) diff --git a/docs/zh_CN/shared-backend/DESIGN.md b/docs/zh_CN/shared-backend/DESIGN.md deleted file mode 100644 index 8757872ec..000000000 --- a/docs/zh_CN/shared-backend/DESIGN.md +++ /dev/null @@ -1,141 +0,0 @@ -介绍 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) ------------- - -该特性可以让多个Minio实例使用一个共享的NAS存储,而且不需要做什么特殊的设置。文件默认已经做了同步以及加锁。 - -目的 ----------- - -由于Minio的设计理念是为单租户场景服务,所以用户希望采用在一个存储后端上运行多个Minio实例,这个存储后端可能是一个已有的NAS。Minio支持这种共享存储后端的特性,而且不需要用户做额外的设置。 - - -限制 ------------- - -* 如果正在执行GetObject(),则PutObject()会阻塞并等待。 -* 如果正在执行PutObject()或者GetObject(),则CompleteMultipartUpload()会阻塞并等待。 -* 无法 -* A CompleteMultipartUpload() is blocked and waits if another PutObject() or GetObject() is in progress. -* 无法运行FS模式作为remote disk RPC。 - -## 如何运行? - -运行共享存储后端的Minio和直接运行在一块独立磁盘的Minio没有啥区别,不需要做额外设置来开启这个特性。访问NAS上的文件默认就会加锁和同步。以下示例将对您选择的每个操作系统上的操作进行阐述: - -### Ubuntu 16.04 LTS - -示例1: 运行Minio实例在持载在`/path/to/nfs-volume`路径下的共享后端存储。 - -On linux server1 -```shell -minio server /path/to/nfs-volume -``` - -On linux server2 -```shell -minio server /path/to/nfs-volume -``` - -### Windows 2012 Server - -示例1: 运行Minio实例在持载在`\\remote-server\cifs`路径下的共享后端存储。 - -On windows server1 -```cmd -minio.exe server \\remote-server\cifs\data -``` - -On windows server2 -```cmd -minio.exe server \\remote-server\cifs\data -``` - -或者共享存储挂载在`D:\`盘. - -On windows server1 -```cmd -minio.exe server D:\data -``` - -On windows server2 -```cmd -minio.exe server D:\data -``` - -架构 ------------------- - -## POSIX/Win32 Locks - -### Lock process - -在同一个Minio实例中,lock由现有的内存命名空间锁(** sync.RWMutex **等)处理。 为了在许多Minio实例之间同步锁,我们利用Unix上的POSIX`fcntl()`锁定和Windows`LockFileEx()`Win32 API)。 如果相邻Minio实例在同一路径上有任何读锁,则写锁请求会被阻塞。 如果有正在进行的写锁,读锁也是如此。 - -### Unlock process - - -关闭文件描述符(fd)就会将之前获得的锁释放。关闭fd将告诉内核放弃当前进程在路径上保留的所有锁。当相同进程在同一路径上有多个读操作时,这会变得更加棘手,这意味着关闭一个fd也会为所有并发读释放锁。 为了正确地处理这种情况,实现了简单的fd引用计数,多个读操作之间共享相同的fd。 当读操作开始关闭fd时,我们开始减少引用计数,一旦引用计数达到零,我们可以确保没有更多的活跃读操作。 所以我们继续关闭底层文件描述符,这将放弃在路径上保留的读锁。 - -这个不适用于写操作,因为对于每个对象总是有一个写和多个读。 - -## 处理并发。 - -这里的一个例子显示了如何使用GetObject()处理争用。 - -GetObject()持有`fs.json`的一个读锁。 - -```go - fsMetaPath := pathJoin(fs.fsPath, minioMetaBucket, bucketMetaPrefix, bucket, object, fsMetaJSONFile) - rlk, err := fs.rwPool.Open(fsMetaPath) - if err != nil { - return toObjectErr(err, bucket, object) - } - defer rlk.Close() - -... you can perform other operations here ... - - _, err = io.Copy(writer, reader) - -... after successful copy operation unlocks the read lock ... -``` - -对同一个对象的并发PutObject操作 -在同一个对象上请求一个并发的PutObject, PutObject()尝试获取一个`fs.json`上的写锁。 - -```go - fsMetaPath := pathJoin(fs.fsPath, minioMetaBucket, bucketMetaPrefix, bucket, object, fsMetaJSONFile) - wlk, err := fs.rwPool.Create(fsMetaPath) - if err != nil { - return ObjectInfo{}, toObjectErr(err, bucket, object) - } - // This close will allow for locks to be synchronized on `fs.json`. - defer wlk.Close() -``` - -现在从上面的代码片段可以看到,直到GetObject()返回。 以下部分代码将被阻塞。 - -```go - wlk, err := fs.rwPool.Create(fsMetaPath) -``` - -这咱限制是必须的,以避免给客户端返回损坏的数据。反之亦然,PutObject(),GetObject()也会等待PutObject()完成之后再执行。 - -### 警告 (并发) - -假设有3个Minio服务共享一个存储后端 - -minio1 - -- DeleteObject(object1) --> 在object1删除操作时持有`fs.json`的锁。 - -minio2 - -- PutObject(object1) --> 等DeleteObject完毕后进行锁定。 - -minio3 - -- PutObject(object1) --> (concurrent request during PutObject minio2 checking if `fs.json` exists) - -一旦获取到锁之后,minio2验证文件是否真的存在,以避免获得已被删除的fd的锁。但是这种情况与minio3存在竞争,因为minio3也在尝试写同一个文件。这就存在一种可能,`fs.json`已经被创建了,所以minio2获得的锁就无效,这样就可能会导致数据不一致。 - -这是一种已知的问题,而且没办法通过POSIX fcntl锁来解决。这种情况是共享存储后端的限制,请你知晓。 diff --git a/docs/zh_CN/shared-backend/README.md b/docs/zh_CN/shared-backend/README.md deleted file mode 100644 index 447231e44..000000000 --- a/docs/zh_CN/shared-backend/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# MinIO共享后端存储快速入门[![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -MinIO共享模式可以让你使用一个[NAS](https://en.wikipedia.org/wiki/Network-attached_storage) 做为多个MinIO服务的存储后端。我我们在设计时已经对多个MinIO服务之间的同步做了很多的处理。更多MinIO共享模式的设计文档,请访问[这里](https://github.com/minio/minio/blob/master/docs/shared-backend/DESIGN.md). - -MinIO共享模式是为了解决在真实场景中存在的一些问题,而且不需要做额外的配置。 -如果你有下列需求,则可以考虑MinIO共享模式 - -- 你已经买了NAS设备,并想在存储层使用MinIO来增加S3兼容。 -- 你的应用架构要求你使用带有S3接口的NAS。 -- 你的应用存在亚历山大的流量,你想给你的NAS设备增加一个有负载均衡能力的S3兼容的服务。 - -在多个共享模式的MinIO服务前面加一层代理,你很容易就能获得一个高可用,负载均衡,AWS S3兼容的存储系统。 - -# 开始 - -如果你知道怎么部署单机MinIO,共享模式的部署和运行也是一样一样的。 - -## 1. 前提条件 - -安装MinIO - [MinIO快速入门](https://docs.min.io/cn/). - -## 2. 在共享后端存储上运行MinIO - -为了让MinIO在共享后端上运行起来,你需要启动多个MinIO服务,这些服务指向同一个后端存储。下面我们就来讲解如何设置。 - -*注意* - -- 使用共享存储的所有MinIO节点需要有相同的access key和secret key。为了做到这一点,我们在所有节点上将access key和secret key export成环境变量,然后再去启动MinIO服务。 -- 下面出现的存储路径都是为了演示目的,在真实环境中使用时,你应该替换成你真实要用的路径。 - -#### MinIO shared mode on Ubuntu 16.04 LTS. - -你需要将文件夹指向共享存储,比如`/path/to/nfs-volume`,然后在所有MinIO节点上运行下面的命令。 - -```sh -export MINIO_ROOT_USER= -export MINIO_ROOT_PASSWORD= -minio gateway nas /path/to/nfs-volume -``` - -#### MinIO shared mode on Windows 2012 Server - -你需要将文件夹指向共享存储,比如`\\remote-server\smb`. 然后在所有MinIO节点上运行下面的命令。 - -```cmd -set MINIO_ROOT_USER=my-username -set MINIO_ROOT_PASSWORD=my-password -minio.exe gateway nas \\remote-server\smb\export -``` - -*Windows提示* - -如果一个远程的volume, 比如`\\remote-server\smb`挂载成一个硬盘, 比如`M:\`. 你可以使用[`net use`](https://technet.microsoft.com/en-us/library/bb490717.aspx)命令将这块盘映射到一个文件夹。 - -```cmd -set MINIO_ROOT_USER=my-username -set MINIO_ROOT_PASSWORD=my-password -net use m: \\remote-server\smb\export /P:Yes -minio.exe gateway nas M:\export -``` - -## 3. 验证 - -为了验证部署是否成功,可能通过浏览器或者[`mc`](https://docs.min.io/cn/minio-client-quickstart-guide)访问MinIO。你应该可以从各个MinIO节点访问上传的文件。 - -## 了解更多 -- [使用`mc`](https://docs.min.io/cn/minio-client-quickstart-guide) -- [使用`aws-cli`](https://docs.min.io/cn/aws-cli-with-minio) -- [使用`s3cmd`](https://docs.min.io/cn/s3cmd-with-minio) -- [使用`minio-go` SDK](https://docs.min.io/cn/golang-client-quickstart-guide) -- [MinIO文档](https://docs.min.io) diff --git a/docs/zh_CN/throttle/README.md b/docs/zh_CN/throttle/README.md deleted file mode 100644 index d2bdf7e0c..000000000 --- a/docs/zh_CN/throttle/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# MinIO服务器限制设置指南 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) - -MinIO服务器允许限制传入的请求: - -- 限制整个集群中允许的活动请求数 -- 限制队列中每个请求的等待时间 - -这些值可以通过服务器的配置或者环境变量启用。 - -## 示例 -### 配置连接限制 -如果您使用传统的机械(hdd)硬盘,则某些具有高并发性的应用程序可能需要调整MinIO群集,以避免驱动器上出现随机I/O。将高并发I/O转换为顺序I/O的方法是通过减少每个集群允许的并发操作数。这使MinIO集群在操作上可以应对此类工作负载,同时还可以确保驱动器具有最佳效率和响应能力。 - -示例:限制MinIO群集在群集的所有节点上最多接受1600个S3兼容的API请求。 - -```sh -export MINIO_API_REQUESTS_MAX=1600 -export MINIO_ROOT_USER=your-access-key -export MINIO_ROOT_PASSWORD=your-secret-key -minio server http://server{1...8}/mnt/hdd{1...16} -``` - -或者 - -```sh -mc admin config set myminio/ api requests_max=1600 -mc admin service restart myminio/ -``` - -> 注意: `requests_max`为零意味着无限制,这也是默认的行为。 - -### 配置连接(等待)期限 -此值与最大连接设置一起使用,设置此值可允许长时间等待的请求,在没有可用空间执行请求时快速超时。 - -当客户端未配置超时时,这将减少等待请求的堆积。如果启用了*MINIO_API_REQUESTS_MAX*,则默认等待时间为*10秒*。根据您的应用程序需求,这可能需要进行调整。 - -示例: 限制MinIO群集在8个服务器上,最多可以接受1600个S3兼容API并发请求,并将每个API操作的等待期限设置为*2分钟*。 - -```sh -export MINIO_API_REQUESTS_MAX=1600 -export MINIO_API_REQUESTS_DEADLINE=2m -export MINIO_ROOT_USER=your-access-key -export MINIO_ROOT_PASSWORD=your-secret-key -minio server http://server{1...8}/mnt/hdd{1...16} -``` - -或者 - -```sh -mc admin config set myminio/ api requests_max=1600 requests_deadline=2m -mc admin service restart myminio/ -``` - diff --git a/docs/zh_CN/tls/README.md b/docs/zh_CN/tls/README.md deleted file mode 100644 index 4cbdb2ff4..000000000 --- a/docs/zh_CN/tls/README.md +++ /dev/null @@ -1,131 +0,0 @@ -# 使用TLS安全的访问Minio服务[![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) - -本文,我们讲介绍如何在Linux和Windows上配置Minio服务使用TLS。 - -## 1. 前提条件 - -* 下载Minio server [这里](https://docs.min.io/docs/minio-quickstart-guide) - -## 2. 配置已存在的证书 - -如果你已经有私钥和公钥证书,你需要将它们拷贝到Minio的config/`certs`文件夹,分别取名为`private.key` 和 `public.crt`。 - -如果这个证书是被证书机构签发的,`public.crt`应该是服务器的证书,任何中间体的证书以及CA的根证书的级联。 - -## 3. 生成证书 - -### Linux - -Minio在Linux只支持使用PEM格式的key/certificate。 - -#### 使用 Let's Encrypt - -更多信息,请访问 [这里](https://docs.min.io/cn/generate-let-s-encypt-certificate-using-concert-for-minio) - -#### 使用 generate_cert.go (self-signed certificate) - -你需要下载 [generate_cert.go](https://golang.org/src/crypto/tls/generate_cert.go?m=text),它是一个简单的go工具,可以生成自签名的证书,不过大多数情况下用着都是木有问题的。 - -`generate_cert.go` 已经提供了带有DNS和IP条目的SAN证书: - -```sh -go run generate_cert.go -ca --host "10.10.0.3" -``` - -#### 使用 OpenSSL: - -生成私钥: - -```sh -openssl genrsa -out private.key 2048 -``` - -生成自签名证书: - -```sh -openssl req -new -x509 -days 3650 -key private.key -out public.crt -subj "/C=US/ST=state/L=location/O=organization/CN=domain" -``` - -### Windows - -Minio在Windows上只支持PEM格式的key/certificate,目前不支持PFX证书。 - -#### 安装 GnuTLS - -下载并解压[GnuTLS](http://www.gnutls.org/download.html) - -确保将解压后的binary路径加入到系统路径中。 - -``` -setx path "%path%;C:\Users\MyUser\Downloads\gnutls-3.4.9-w64\bin" -``` - -你可能需要重启powershell控制台来使其生效。 - -#### 生成private.key - -运行下面的命令来生成 `private.key` - -``` -certtool.exe --generate-privkey --outfile private.key -``` - -#### 生成public.crt - -创建文件`cert.cnf`,填写必要信息来生成证书。 - -``` -# X.509 Certificate options -# -# DN options - -# The organization of the subject. -organization = "Example Inc." - -# The organizational unit of the subject. -#unit = "sleeping dept." - -# The state of the certificate owner. -state = "Example" - -# The country of the subject. Two letter code. -country = "EX" - -# The common name of the certificate owner. -cn = "Sally Certowner" - -# In how many days, counting from today, this certificate will expire. -expiration_days = 365 - -# X.509 v3 extensions - -# DNS name(s) of the server -dns_name = "localhost" - -# (Optional) Server IP address -ip_address = "127.0.0.1" - -# Whether this certificate will be used for a TLS server -tls_www_server - -# Whether this certificate will be used to encrypt data (needed -# in TLS RSA ciphersuites). Note that it is preferred to use different -# keys for encryption and signing. -encryption_key -``` - -生成公钥证书 - -``` -certtool.exe --generate-self-signed --load-privkey private.key --template cert.cnf --outfile public.crt -``` - -## 4. 安装第三方CAs - -Minio可以配置成连接其它服务,不管是Minio节点还是像NATs、Redis这些。如果这些服务用的不是在已知证书机构注册的证书,你可以让Minio服务信任这些CA,怎么做呢,将这些证书放到Minio配置路径下 -* **Linux:** `~/.minio/certs/CAs/` -* **Windows**: `C:\Users\\.minio\certs\CAs` - -# 了解更多 -* [Minio快速入门](https://docs.min.io/cn/minio-quickstart-guide) -* [Minio客户端权威指南](https://docs.min.io/cn/minio-client-complete-guide) diff --git a/main.go b/main.go index 8f5a15bec..e0fc57171 100644 --- a/main.go +++ b/main.go @@ -1,24 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Below main package has canonical imports for 'go get' and 'go build' - * to work with all other clones of github.com/minio/minio repository. For - * more information refer https://golang.org/doc/go1.4#canonicalimports - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main // import "github.com/minio/minio" diff --git a/main_test.go b/main_test.go index 16760e064..0df14051d 100644 --- a/main_test.go +++ b/main_test.go @@ -1,20 +1,21 @@ // +build testrunmain -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/minio.spec b/minio.spec deleted file mode 100644 index 02c862d51..000000000 --- a/minio.spec +++ /dev/null @@ -1,64 +0,0 @@ -%define tag RELEASE.2020-11-25T22-36-25Z -%define subver %(echo %{tag} | sed -e 's/[^0-9]//g') -# git fetch https://github.com/minio/minio.git refs/tags/RELEASE.2020-11-25T22-36-25Z -# git rev-list -n 1 FETCH_HEAD -%define commitid 91130e884b5df59d66a45a0aad4f48db88f5ca63 -Summary: High Performance, Kubernetes Native Object Storage. -Name: minio -Version: 0.0.%{subver} -Release: 1 -Vendor: MinIO, Inc. -License: Apache v2.0 -Group: Applications/File -Source0: https://dl.minio.io/server/minio/release/linux-amd64/archive/minio.%{tag} -Source1: https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/distributed/minio.service -URL: https://www.min.io/ -Requires(pre): /usr/sbin/useradd, /usr/bin/getent -Requires(postun): /usr/sbin/userdel -BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) - -## Disable debug packages. -%define debug_package %{nil} - -%description -MinIO is a High Performance Object Storage released under Apache License v2.0. -It is API compatible with Amazon S3 cloud storage service. Use MinIO to build -high performance infrastructure for machine learning, analytics and application -data workloads. - -%pre -/usr/bin/getent group minio-user || /usr/sbin/groupadd -r minio-user -/usr/bin/getent passwd minio-user || /usr/sbin/useradd -r -d /etc/minio -s /sbin/nologin minio-user - -%install -rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc/minio/certs -install -d $RPM_BUILD_ROOT/etc/systemd/system -install -d $RPM_BUILD_ROOT/etc/default -install -d $RPM_BUILD_ROOT/usr/local/bin - -cat <> $RPM_BUILD_ROOT/etc/default/minio -# Remote volumes to be used for MinIO server. -# Uncomment line before starting the server. -# MINIO_VOLUMES=http://node{1...6}/export{1...32} - -# Root credentials for the server. -# Uncomment both lines before starting the server. -# MINIO_ROOT_USER=Server-Root-User -# MINIO_ROOT_PASSWORD=Server-Root-Password - -MINIO_OPTS="--certs-dir /etc/minio/certs" -EOF - -install %{_sourcedir}/minio.service $RPM_BUILD_ROOT/etc/systemd/system/minio.service -install -p %{_sourcedir}/%{name}.%{tag} $RPM_BUILD_ROOT/usr/local/bin/minio - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(644,root,root,755) -%attr(644,root,root) /etc/default/minio -%attr(644,root,root) /etc/systemd/system/minio.service -%attr(644,minio-user,minio-user) /etc/minio -%attr(755,minio-user,minio-user) /usr/local/bin/minio diff --git a/mint/build/versioning/bucket.go b/mint/build/versioning/bucket.go index f2a687488..c910a9c2a 100644 --- a/mint/build/versioning/bucket.go +++ b/mint/build/versioning/bucket.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/delete.go b/mint/build/versioning/delete.go index 2fe84f40a..649fca4c7 100644 --- a/mint/build/versioning/delete.go +++ b/mint/build/versioning/delete.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/get.go b/mint/build/versioning/get.go index e930488ed..f1c14035f 100644 --- a/mint/build/versioning/get.go +++ b/mint/build/versioning/get.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/legalhold.go b/mint/build/versioning/legalhold.go index cf765ee3b..0795fa499 100644 --- a/mint/build/versioning/legalhold.go +++ b/mint/build/versioning/legalhold.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/list.go b/mint/build/versioning/list.go index 4d77de681..ced76ef82 100644 --- a/mint/build/versioning/list.go +++ b/mint/build/versioning/list.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/main.go b/mint/build/versioning/main.go index aaf9fe76b..858843c85 100644 --- a/mint/build/versioning/main.go +++ b/mint/build/versioning/main.go @@ -1,17 +1,19 @@ -// Mint, (C) 2021 Minio, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. // -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/put.go b/mint/build/versioning/put.go index 179036fd7..ae29f0f58 100644 --- a/mint/build/versioning/put.go +++ b/mint/build/versioning/put.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/retention.go b/mint/build/versioning/retention.go index fe6acac75..dda069e13 100644 --- a/mint/build/versioning/retention.go +++ b/mint/build/versioning/retention.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/stat.go b/mint/build/versioning/stat.go index 52d294c65..6aa485367 100644 --- a/mint/build/versioning/stat.go +++ b/mint/build/versioning/stat.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/tagging.go b/mint/build/versioning/tagging.go index f41a35837..e14d30a2a 100644 --- a/mint/build/versioning/tagging.go +++ b/mint/build/versioning/tagging.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/build/versioning/utils.go b/mint/build/versioning/utils.go index 3c2b1ac24..3389f6a61 100644 --- a/mint/build/versioning/utils.go +++ b/mint/build/versioning/utils.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2021 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/run/core/aws-sdk-go/main.go b/mint/run/core/aws-sdk-go/main.go index 7ce01f96d..3c292d878 100644 --- a/mint/run/core/aws-sdk-go/main.go +++ b/mint/run/core/aws-sdk-go/main.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2017 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/run/core/healthcheck/main.go b/mint/run/core/healthcheck/main.go index 917b6ebbf..eba14a788 100644 --- a/mint/run/core/healthcheck/main.go +++ b/mint/run/core/healthcheck/main.go @@ -1,21 +1,19 @@ -/* -* -* Mint, (C) 2019 Minio, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software - -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/mint/run/core/security/main.go b/mint/run/core/security/main.go index adbd87b52..e760472b0 100644 --- a/mint/run/core/security/main.go +++ b/mint/run/core/security/main.go @@ -1,17 +1,19 @@ -// Mint, (C) 2018 Minio, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software - -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/auth/credentials.go b/pkg/auth/credentials.go index 2752b1adc..007803032 100644 --- a/pkg/auth/credentials.go +++ b/pkg/auth/credentials.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package auth diff --git a/pkg/auth/credentials_test.go b/pkg/auth/credentials_test.go index 4577bef96..41a04ad49 100644 --- a/pkg/auth/credentials_test.go +++ b/pkg/auth/credentials_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package auth diff --git a/pkg/bandwidth/bandwidth.go b/pkg/bandwidth/bandwidth.go deleted file mode 100644 index 29af5b8c0..000000000 --- a/pkg/bandwidth/bandwidth.go +++ /dev/null @@ -1,28 +0,0 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package bandwidth - -// Details for the measured bandwidth -type Details struct { - LimitInBytesPerSecond int64 `json:"limitInBits"` - CurrentBandwidthInBytesPerSecond float64 `json:"currentBandwidth"` -} - -// Report captures the details for all buckets. -type Report struct { - BucketStats map[string]Details `json:"bucketStats,omitempty"` -} diff --git a/pkg/bpool/bpool.go b/pkg/bpool/bpool.go index 0338c0f77..4e6621884 100644 --- a/pkg/bpool/bpool.go +++ b/pkg/bpool/bpool.go @@ -1,24 +1,19 @@ -// Original work https://github.com/oxtoacart/bpool borrowed -// only bpool.go licensed under Apache 2.0. - -// This file modifies original bpool.go to add one more option -// to provide []byte capacity for better GC management. - -/* - * MinIO Cloud Storage (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package bpool diff --git a/pkg/bpool/bpool_test.go b/pkg/bpool/bpool_test.go index bca1a2240..300bbf951 100644 --- a/pkg/bpool/bpool_test.go +++ b/pkg/bpool/bpool_test.go @@ -1,24 +1,19 @@ -// Original work https://github.com/oxtoacart/bpool borrowed -// only bpool.go licensed under Apache 2.0. - -// This file modifies original bpool.go to add one more option -// to provide []byte capacity for better GC management. - -/* - * MinIO Cloud Storage (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package bpool diff --git a/pkg/bucket/bandwidth/measurement.go b/pkg/bucket/bandwidth/measurement.go index 4ff0e2229..9f605d1ed 100644 --- a/pkg/bucket/bandwidth/measurement.go +++ b/pkg/bucket/bandwidth/measurement.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package bandwidth diff --git a/pkg/bucket/bandwidth/monitor.go b/pkg/bucket/bandwidth/monitor.go index 968ffa373..b6657b205 100644 --- a/pkg/bucket/bandwidth/monitor.go +++ b/pkg/bucket/bandwidth/monitor.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package bandwidth @@ -21,7 +22,7 @@ import ( "sync" "time" - "github.com/minio/minio/pkg/bandwidth" + "github.com/minio/minio/pkg/madmin" ) // throttleBandwidth gets the throttle for bucket with the configured value @@ -84,15 +85,15 @@ func SelectBuckets(buckets ...string) SelectionFunction { } // GetReport gets the report for all bucket bandwidth details. -func (m *Monitor) GetReport(selectBucket SelectionFunction) *bandwidth.Report { +func (m *Monitor) GetReport(selectBucket SelectionFunction) *madmin.BucketBandwidthReport { m.lock.Lock() defer m.lock.Unlock() return m.getReport(selectBucket) } -func (m *Monitor) getReport(selectBucket SelectionFunction) *bandwidth.Report { - report := &bandwidth.Report{ - BucketStats: make(map[string]bandwidth.Details), +func (m *Monitor) getReport(selectBucket SelectionFunction) *madmin.BucketBandwidthReport { + report := &madmin.BucketBandwidthReport{ + BucketStats: make(map[string]madmin.BandwidthDetails), } for bucket, bucketMeasurement := range m.activeBuckets { if !selectBucket(bucket) { @@ -102,7 +103,7 @@ func (m *Monitor) getReport(selectBucket SelectionFunction) *bandwidth.Report { if !ok { continue } - report.BucketStats[bucket] = bandwidth.Details{ + report.BucketStats[bucket] = madmin.BandwidthDetails{ LimitInBytesPerSecond: bucketThrottle.clusterBandwidth, CurrentBandwidthInBytesPerSecond: bucketMeasurement.getExpMovingAvgBytesPerSecond(), } diff --git a/pkg/bucket/bandwidth/monitor_test.go b/pkg/bucket/bandwidth/monitor_test.go index 02ed7162c..2e1ffec89 100644 --- a/pkg/bucket/bandwidth/monitor_test.go +++ b/pkg/bucket/bandwidth/monitor_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package bandwidth @@ -22,7 +23,7 @@ import ( "testing" "time" - "github.com/minio/minio/pkg/bandwidth" + "github.com/minio/minio/pkg/madmin" ) const ( @@ -90,8 +91,8 @@ func TestMonitor_GetReport(t *testing.T) { tests := []struct { name string fields fields - want *bandwidth.Report - want2 *bandwidth.Report + want *madmin.BucketBandwidthReport + want2 *madmin.BucketBandwidthReport }{ { name: "ZeroToOne", @@ -103,11 +104,11 @@ func TestMonitor_GetReport(t *testing.T) { update2: oneMiB, endTime2: start.Add(2 * time.Second), }, - want: &bandwidth.Report{ - BucketStats: map[string]bandwidth.Details{"bucket": {LimitInBytesPerSecond: 1024 * 1024, CurrentBandwidthInBytesPerSecond: 0}}, + want: &madmin.BucketBandwidthReport{ + BucketStats: map[string]madmin.BandwidthDetails{"bucket": {LimitInBytesPerSecond: 1024 * 1024, CurrentBandwidthInBytesPerSecond: 0}}, }, - want2: &bandwidth.Report{ - BucketStats: map[string]bandwidth.Details{"bucket": {LimitInBytesPerSecond: 1024 * 1024, CurrentBandwidthInBytesPerSecond: (1024 * 1024) / start.Add(2*time.Second).Sub(start.Add(1*time.Second)).Seconds()}}, + want2: &madmin.BucketBandwidthReport{ + BucketStats: map[string]madmin.BandwidthDetails{"bucket": {LimitInBytesPerSecond: 1024 * 1024, CurrentBandwidthInBytesPerSecond: (1024 * 1024) / start.Add(2*time.Second).Sub(start.Add(1*time.Second)).Seconds()}}, }, }, { @@ -120,11 +121,11 @@ func TestMonitor_GetReport(t *testing.T) { update2: 2 * oneMiB, endTime2: start.Add(2 * time.Second), }, - want: &bandwidth.Report{ - BucketStats: map[string]bandwidth.Details{"bucket": {LimitInBytesPerSecond: 1024 * 1024, CurrentBandwidthInBytesPerSecond: float64(oneMiB)}}, + want: &madmin.BucketBandwidthReport{ + BucketStats: map[string]madmin.BandwidthDetails{"bucket": {LimitInBytesPerSecond: 1024 * 1024, CurrentBandwidthInBytesPerSecond: float64(oneMiB)}}, }, - want2: &bandwidth.Report{ - BucketStats: map[string]bandwidth.Details{"bucket": { + want2: &madmin.BucketBandwidthReport{ + BucketStats: map[string]madmin.BandwidthDetails{"bucket": { LimitInBytesPerSecond: 1024 * 1024, CurrentBandwidthInBytesPerSecond: exponentialMovingAverage(betaBucket, float64(oneMiB), 2*float64(oneMiB))}}, }, diff --git a/pkg/bucket/bandwidth/reader.go b/pkg/bucket/bandwidth/reader.go index 42885c25b..be9a10362 100644 --- a/pkg/bucket/bandwidth/reader.go +++ b/pkg/bucket/bandwidth/reader.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package bandwidth diff --git a/pkg/bucket/bandwidth/throttle.go b/pkg/bucket/bandwidth/throttle.go index 7fc00fd0a..2981e8d67 100644 --- a/pkg/bucket/bandwidth/throttle.go +++ b/pkg/bucket/bandwidth/throttle.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package bandwidth diff --git a/pkg/bucket/encryption/bucket-sse-config.go b/pkg/bucket/encryption/bucket-sse-config.go index 667a5266d..f47a5f1d7 100644 --- a/pkg/bucket/encryption/bucket-sse-config.go +++ b/pkg/bucket/encryption/bucket-sse-config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/pkg/bucket/encryption/bucket-sse-config_test.go b/pkg/bucket/encryption/bucket-sse-config_test.go index e5309fc29..77e7352a2 100644 --- a/pkg/bucket/encryption/bucket-sse-config_test.go +++ b/pkg/bucket/encryption/bucket-sse-config_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cmd diff --git a/pkg/bucket/lifecycle/action_string.go b/pkg/bucket/lifecycle/action_string.go index 5d36c14a0..e486729f0 100644 --- a/pkg/bucket/lifecycle/action_string.go +++ b/pkg/bucket/lifecycle/action_string.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Code generated by "stringer -type Action lifecycle.go"; DO NOT EDIT. package lifecycle diff --git a/pkg/bucket/lifecycle/and.go b/pkg/bucket/lifecycle/and.go index 36f7cd833..95ad3d923 100644 --- a/pkg/bucket/lifecycle/and.go +++ b/pkg/bucket/lifecycle/and.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/error.go b/pkg/bucket/lifecycle/error.go index 31138ad15..9676871a4 100644 --- a/pkg/bucket/lifecycle/error.go +++ b/pkg/bucket/lifecycle/error.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/expiration.go b/pkg/bucket/lifecycle/expiration.go index e9ff8cf79..9670d250e 100644 --- a/pkg/bucket/lifecycle/expiration.go +++ b/pkg/bucket/lifecycle/expiration.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/expiration_test.go b/pkg/bucket/lifecycle/expiration_test.go index 24592efe6..30164b21c 100644 --- a/pkg/bucket/lifecycle/expiration_test.go +++ b/pkg/bucket/lifecycle/expiration_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/filter.go b/pkg/bucket/lifecycle/filter.go index c69d27c26..ad7995d7a 100644 --- a/pkg/bucket/lifecycle/filter.go +++ b/pkg/bucket/lifecycle/filter.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/filter_test.go b/pkg/bucket/lifecycle/filter_test.go index d9cd5959e..9e10c1b97 100644 --- a/pkg/bucket/lifecycle/filter_test.go +++ b/pkg/bucket/lifecycle/filter_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/lifecycle.go b/pkg/bucket/lifecycle/lifecycle.go index bba514cd3..e6f1255b3 100644 --- a/pkg/bucket/lifecycle/lifecycle.go +++ b/pkg/bucket/lifecycle/lifecycle.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/lifecycle_test.go b/pkg/bucket/lifecycle/lifecycle_test.go index 60bed4834..2d9a07ccc 100644 --- a/pkg/bucket/lifecycle/lifecycle_test.go +++ b/pkg/bucket/lifecycle/lifecycle_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/noncurrentversion.go b/pkg/bucket/lifecycle/noncurrentversion.go index acbaf24ac..b61d829b9 100644 --- a/pkg/bucket/lifecycle/noncurrentversion.go +++ b/pkg/bucket/lifecycle/noncurrentversion.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/prefix.go b/pkg/bucket/lifecycle/prefix.go index 4a7de225b..4651b9edf 100644 --- a/pkg/bucket/lifecycle/prefix.go +++ b/pkg/bucket/lifecycle/prefix.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/rule.go b/pkg/bucket/lifecycle/rule.go index 7676b1161..e3e30a818 100644 --- a/pkg/bucket/lifecycle/rule.go +++ b/pkg/bucket/lifecycle/rule.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/rule_test.go b/pkg/bucket/lifecycle/rule_test.go index bb805b3cb..db91efaf4 100644 --- a/pkg/bucket/lifecycle/rule_test.go +++ b/pkg/bucket/lifecycle/rule_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/tag.go b/pkg/bucket/lifecycle/tag.go index d183e0224..4b3341b22 100644 --- a/pkg/bucket/lifecycle/tag.go +++ b/pkg/bucket/lifecycle/tag.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/lifecycle/transition.go b/pkg/bucket/lifecycle/transition.go index 73cc59a90..96494caec 100644 --- a/pkg/bucket/lifecycle/transition.go +++ b/pkg/bucket/lifecycle/transition.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lifecycle diff --git a/pkg/bucket/object/lock/lock.go b/pkg/bucket/object/lock/lock.go index 3aacf467e..3074aec26 100644 --- a/pkg/bucket/object/lock/lock.go +++ b/pkg/bucket/object/lock/lock.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lock diff --git a/pkg/bucket/object/lock/lock_test.go b/pkg/bucket/object/lock/lock_test.go index 9c4eb3b0f..7682c712e 100644 --- a/pkg/bucket/object/lock/lock_test.go +++ b/pkg/bucket/object/lock/lock_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lock diff --git a/pkg/bucket/policy/action.go b/pkg/bucket/policy/action.go index e7c24d35e..94ab27a94 100644 --- a/pkg/bucket/policy/action.go +++ b/pkg/bucket/policy/action.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/action_test.go b/pkg/bucket/policy/action_test.go index 40dcb9cd0..1784432f0 100644 --- a/pkg/bucket/policy/action_test.go +++ b/pkg/bucket/policy/action_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/actionset.go b/pkg/bucket/policy/actionset.go index fdb1f7e68..73ed286e6 100644 --- a/pkg/bucket/policy/actionset.go +++ b/pkg/bucket/policy/actionset.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/actionset_test.go b/pkg/bucket/policy/actionset_test.go index a84bcd177..8c6ef7d10 100644 --- a/pkg/bucket/policy/actionset_test.go +++ b/pkg/bucket/policy/actionset_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/condition/binaryequalsfunc.go b/pkg/bucket/policy/condition/binaryequalsfunc.go index c6bb0ce1b..27991e5dc 100644 --- a/pkg/bucket/policy/condition/binaryequalsfunc.go +++ b/pkg/bucket/policy/condition/binaryequalsfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/binaryequalsfunc_test.go b/pkg/bucket/policy/condition/binaryequalsfunc_test.go index 3032d8954..47e927efd 100644 --- a/pkg/bucket/policy/condition/binaryequalsfunc_test.go +++ b/pkg/bucket/policy/condition/binaryequalsfunc_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/boolfunc.go b/pkg/bucket/policy/condition/boolfunc.go index b8ecd3e6e..b0e49e513 100644 --- a/pkg/bucket/policy/condition/boolfunc.go +++ b/pkg/bucket/policy/condition/boolfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/boolfunc_test.go b/pkg/bucket/policy/condition/boolfunc_test.go index ff4cbdf97..49a6ef8b7 100644 --- a/pkg/bucket/policy/condition/boolfunc_test.go +++ b/pkg/bucket/policy/condition/boolfunc_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/dateequalsfunc.go b/pkg/bucket/policy/condition/dateequalsfunc.go index 64871f9b0..b9a0b2e1a 100644 --- a/pkg/bucket/policy/condition/dateequalsfunc.go +++ b/pkg/bucket/policy/condition/dateequalsfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/dategreaterthanfunc.go b/pkg/bucket/policy/condition/dategreaterthanfunc.go index 25c375d53..ca18c4c6e 100644 --- a/pkg/bucket/policy/condition/dategreaterthanfunc.go +++ b/pkg/bucket/policy/condition/dategreaterthanfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/datelessthanfunc.go b/pkg/bucket/policy/condition/datelessthanfunc.go index 20b16d28f..0151cfa2c 100644 --- a/pkg/bucket/policy/condition/datelessthanfunc.go +++ b/pkg/bucket/policy/condition/datelessthanfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/func.go b/pkg/bucket/policy/condition/func.go index 3304d5fac..e6c0a3c22 100644 --- a/pkg/bucket/policy/condition/func.go +++ b/pkg/bucket/policy/condition/func.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/func_test.go b/pkg/bucket/policy/condition/func_test.go index 77f47be6f..4bfdc92f5 100644 --- a/pkg/bucket/policy/condition/func_test.go +++ b/pkg/bucket/policy/condition/func_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/ipaddressfunc.go b/pkg/bucket/policy/condition/ipaddressfunc.go index 4f80f3786..717c574ba 100644 --- a/pkg/bucket/policy/condition/ipaddressfunc.go +++ b/pkg/bucket/policy/condition/ipaddressfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/ipaddressfunc_test.go b/pkg/bucket/policy/condition/ipaddressfunc_test.go index 6cbfcfbee..5c0618304 100644 --- a/pkg/bucket/policy/condition/ipaddressfunc_test.go +++ b/pkg/bucket/policy/condition/ipaddressfunc_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/jwt.go b/pkg/bucket/policy/condition/jwt.go index 360a24c81..3c8d223be 100644 --- a/pkg/bucket/policy/condition/jwt.go +++ b/pkg/bucket/policy/condition/jwt.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/key.go b/pkg/bucket/policy/condition/key.go index 6d66ee74b..ad273ae99 100644 --- a/pkg/bucket/policy/condition/key.go +++ b/pkg/bucket/policy/condition/key.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/key_test.go b/pkg/bucket/policy/condition/key_test.go index 001a47b51..7461532c8 100644 --- a/pkg/bucket/policy/condition/key_test.go +++ b/pkg/bucket/policy/condition/key_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/ldap.go b/pkg/bucket/policy/condition/ldap.go index d4390e9e2..5fb98176e 100644 --- a/pkg/bucket/policy/condition/ldap.go +++ b/pkg/bucket/policy/condition/ldap.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/name.go b/pkg/bucket/policy/condition/name.go index 270cd1a4d..7ec24f25c 100644 --- a/pkg/bucket/policy/condition/name.go +++ b/pkg/bucket/policy/condition/name.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/name_test.go b/pkg/bucket/policy/condition/name_test.go index b6c98be42..f42af0218 100644 --- a/pkg/bucket/policy/condition/name_test.go +++ b/pkg/bucket/policy/condition/name_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/nullfunc.go b/pkg/bucket/policy/condition/nullfunc.go index abc2f66f9..ecc789a9b 100644 --- a/pkg/bucket/policy/condition/nullfunc.go +++ b/pkg/bucket/policy/condition/nullfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/nullfunc_test.go b/pkg/bucket/policy/condition/nullfunc_test.go index ea3e2e705..1bca10a39 100644 --- a/pkg/bucket/policy/condition/nullfunc_test.go +++ b/pkg/bucket/policy/condition/nullfunc_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/numericequalsfunc.go b/pkg/bucket/policy/condition/numericequalsfunc.go index 42134a0be..7b43bc15f 100644 --- a/pkg/bucket/policy/condition/numericequalsfunc.go +++ b/pkg/bucket/policy/condition/numericequalsfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/numericgreaterfunc.go b/pkg/bucket/policy/condition/numericgreaterfunc.go index e4d07a4e1..9c3b558de 100644 --- a/pkg/bucket/policy/condition/numericgreaterfunc.go +++ b/pkg/bucket/policy/condition/numericgreaterfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/numericlessfunc.go b/pkg/bucket/policy/condition/numericlessfunc.go index 7890b655d..805d9e33a 100644 --- a/pkg/bucket/policy/condition/numericlessfunc.go +++ b/pkg/bucket/policy/condition/numericlessfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/stringequalsfunc.go b/pkg/bucket/policy/condition/stringequalsfunc.go index 8949ab85a..e0f20d239 100644 --- a/pkg/bucket/policy/condition/stringequalsfunc.go +++ b/pkg/bucket/policy/condition/stringequalsfunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/stringequalsfunc_test.go b/pkg/bucket/policy/condition/stringequalsfunc_test.go index a0609759c..d0a92bea1 100644 --- a/pkg/bucket/policy/condition/stringequalsfunc_test.go +++ b/pkg/bucket/policy/condition/stringequalsfunc_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/stringequalsignorecasefunc.go b/pkg/bucket/policy/condition/stringequalsignorecasefunc.go index df4722972..ecee11157 100644 --- a/pkg/bucket/policy/condition/stringequalsignorecasefunc.go +++ b/pkg/bucket/policy/condition/stringequalsignorecasefunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/stringequalsignorecasefunc_test.go b/pkg/bucket/policy/condition/stringequalsignorecasefunc_test.go index e223701b4..dde5d3cd6 100644 --- a/pkg/bucket/policy/condition/stringequalsignorecasefunc_test.go +++ b/pkg/bucket/policy/condition/stringequalsignorecasefunc_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/stringlikefunc.go b/pkg/bucket/policy/condition/stringlikefunc.go index 165f824d5..d0f2045c8 100644 --- a/pkg/bucket/policy/condition/stringlikefunc.go +++ b/pkg/bucket/policy/condition/stringlikefunc.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/stringlikefunc_test.go b/pkg/bucket/policy/condition/stringlikefunc_test.go index 010d99f0d..e11413be3 100644 --- a/pkg/bucket/policy/condition/stringlikefunc_test.go +++ b/pkg/bucket/policy/condition/stringlikefunc_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/value.go b/pkg/bucket/policy/condition/value.go index 8a73963b1..80b4922d4 100644 --- a/pkg/bucket/policy/condition/value.go +++ b/pkg/bucket/policy/condition/value.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/value_test.go b/pkg/bucket/policy/condition/value_test.go index edd779eaf..eac97321a 100644 --- a/pkg/bucket/policy/condition/value_test.go +++ b/pkg/bucket/policy/condition/value_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/valueset.go b/pkg/bucket/policy/condition/valueset.go index afdf2e128..f97bdd68a 100644 --- a/pkg/bucket/policy/condition/valueset.go +++ b/pkg/bucket/policy/condition/valueset.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/condition/valueset_test.go b/pkg/bucket/policy/condition/valueset_test.go index c8f8b2afb..f727edd3c 100644 --- a/pkg/bucket/policy/condition/valueset_test.go +++ b/pkg/bucket/policy/condition/valueset_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package condition diff --git a/pkg/bucket/policy/effect.go b/pkg/bucket/policy/effect.go index 31167587a..e6f6c3ad6 100644 --- a/pkg/bucket/policy/effect.go +++ b/pkg/bucket/policy/effect.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/effect_test.go b/pkg/bucket/policy/effect_test.go index 5797aaa15..86eb7c20d 100644 --- a/pkg/bucket/policy/effect_test.go +++ b/pkg/bucket/policy/effect_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/error.go b/pkg/bucket/policy/error.go index 545e6726d..e0b8c6d01 100644 --- a/pkg/bucket/policy/error.go +++ b/pkg/bucket/policy/error.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/id.go b/pkg/bucket/policy/id.go index 62e48e6c2..ad7f966c9 100644 --- a/pkg/bucket/policy/id.go +++ b/pkg/bucket/policy/id.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/id_test.go b/pkg/bucket/policy/id_test.go index b1f7d5dfd..42f969306 100644 --- a/pkg/bucket/policy/id_test.go +++ b/pkg/bucket/policy/id_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/policy.go b/pkg/bucket/policy/policy.go index fc5edaeb1..25c578aa0 100644 --- a/pkg/bucket/policy/policy.go +++ b/pkg/bucket/policy/policy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/policy_test.go b/pkg/bucket/policy/policy_test.go index 05629df6f..257675425 100644 --- a/pkg/bucket/policy/policy_test.go +++ b/pkg/bucket/policy/policy_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/principal.go b/pkg/bucket/policy/principal.go index 51f71cae8..503bc9d36 100644 --- a/pkg/bucket/policy/principal.go +++ b/pkg/bucket/policy/principal.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/principal_test.go b/pkg/bucket/policy/principal_test.go index 95442321e..eb76db635 100644 --- a/pkg/bucket/policy/principal_test.go +++ b/pkg/bucket/policy/principal_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/resource.go b/pkg/bucket/policy/resource.go index ca892f460..347f7ee34 100644 --- a/pkg/bucket/policy/resource.go +++ b/pkg/bucket/policy/resource.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/resource_test.go b/pkg/bucket/policy/resource_test.go index 93ae5c280..a780bf4bf 100644 --- a/pkg/bucket/policy/resource_test.go +++ b/pkg/bucket/policy/resource_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/resourceset.go b/pkg/bucket/policy/resourceset.go index 375eeea01..1c37c7d79 100644 --- a/pkg/bucket/policy/resourceset.go +++ b/pkg/bucket/policy/resourceset.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/resourceset_test.go b/pkg/bucket/policy/resourceset_test.go index 3f5fc1025..8e74f805c 100644 --- a/pkg/bucket/policy/resourceset_test.go +++ b/pkg/bucket/policy/resourceset_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/statement.go b/pkg/bucket/policy/statement.go index 0b16cfa8c..7614fcabc 100644 --- a/pkg/bucket/policy/statement.go +++ b/pkg/bucket/policy/statement.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/policy/statement_test.go b/pkg/bucket/policy/statement_test.go index c53d7b82e..92b584b0a 100644 --- a/pkg/bucket/policy/statement_test.go +++ b/pkg/bucket/policy/statement_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package policy diff --git a/pkg/bucket/replication/and.go b/pkg/bucket/replication/and.go index 14059d1b0..9c8de96b5 100644 --- a/pkg/bucket/replication/and.go +++ b/pkg/bucket/replication/and.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package replication diff --git a/pkg/bucket/replication/destination.go b/pkg/bucket/replication/destination.go index c115806f8..68cc2c954 100644 --- a/pkg/bucket/replication/destination.go +++ b/pkg/bucket/replication/destination.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package replication diff --git a/pkg/bucket/replication/error.go b/pkg/bucket/replication/error.go index 59f937fa4..7d5178d84 100644 --- a/pkg/bucket/replication/error.go +++ b/pkg/bucket/replication/error.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package replication diff --git a/pkg/bucket/replication/filter.go b/pkg/bucket/replication/filter.go index 5da350cb1..475c70893 100644 --- a/pkg/bucket/replication/filter.go +++ b/pkg/bucket/replication/filter.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package replication diff --git a/pkg/bucket/replication/replication.go b/pkg/bucket/replication/replication.go index e743f54c2..db0e4db19 100644 --- a/pkg/bucket/replication/replication.go +++ b/pkg/bucket/replication/replication.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package replication diff --git a/pkg/bucket/replication/replication_test.go b/pkg/bucket/replication/replication_test.go index 144907d7b..0593dd70c 100644 --- a/pkg/bucket/replication/replication_test.go +++ b/pkg/bucket/replication/replication_test.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package replication import ( diff --git a/pkg/bucket/replication/rule.go b/pkg/bucket/replication/rule.go index 7a4d9a068..97432dd3b 100644 --- a/pkg/bucket/replication/rule.go +++ b/pkg/bucket/replication/rule.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package replication diff --git a/pkg/bucket/replication/tag.go b/pkg/bucket/replication/tag.go index 9a5b25a21..e60989a5e 100644 --- a/pkg/bucket/replication/tag.go +++ b/pkg/bucket/replication/tag.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package replication diff --git a/pkg/bucket/versioning/error.go b/pkg/bucket/versioning/error.go index e1f8dcc13..6b652c0ae 100644 --- a/pkg/bucket/versioning/error.go +++ b/pkg/bucket/versioning/error.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package versioning diff --git a/pkg/bucket/versioning/versioning.go b/pkg/bucket/versioning/versioning.go index 078525b4f..2141afb2b 100644 --- a/pkg/bucket/versioning/versioning.go +++ b/pkg/bucket/versioning/versioning.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package versioning diff --git a/pkg/certs/ca-certs.go b/pkg/certs/ca-certs.go index 43fe48b0e..a96a76c73 100644 --- a/pkg/certs/ca-certs.go +++ b/pkg/certs/ca-certs.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/certs/ca-certs_test.go b/pkg/certs/ca-certs_test.go index 05e567296..eaa1115b4 100644 --- a/pkg/certs/ca-certs_test.go +++ b/pkg/certs/ca-certs_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/certs/cert_pool_nix.go b/pkg/certs/cert_pool_nix.go index 50da352ea..a78140fac 100644 --- a/pkg/certs/cert_pool_nix.go +++ b/pkg/certs/cert_pool_nix.go @@ -1,20 +1,21 @@ // +build !windows -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/certs/cert_pool_windows.go b/pkg/certs/cert_pool_windows.go index a1f49625c..db9c8f9ff 100644 --- a/pkg/certs/cert_pool_windows.go +++ b/pkg/certs/cert_pool_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/certs/certs.go b/pkg/certs/certs.go index 2ba70be98..aecd7e6d3 100644 --- a/pkg/certs/certs.go +++ b/pkg/certs/certs.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/certs/certs_test.go b/pkg/certs/certs_test.go index 0f05abbb5..cc460066a 100644 --- a/pkg/certs/certs_test.go +++ b/pkg/certs/certs_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs_test diff --git a/pkg/certs/event.go b/pkg/certs/event.go index 3a266c65e..7d69d0824 100644 --- a/pkg/certs/event.go +++ b/pkg/certs/event.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/certs/event_linux.go b/pkg/certs/event_linux.go index e277ea675..6134c99ae 100644 --- a/pkg/certs/event_linux.go +++ b/pkg/certs/event_linux.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/certs/event_others.go b/pkg/certs/event_others.go index 486e06fa3..12e57aae3 100644 --- a/pkg/certs/event_others.go +++ b/pkg/certs/event_others.go @@ -1,20 +1,21 @@ // +build !linux -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package certs diff --git a/pkg/cgroup/linux.go b/pkg/cgroup/linux.go index 8fbb57d71..8fa0f9669 100644 --- a/pkg/cgroup/linux.go +++ b/pkg/cgroup/linux.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package cgroup implements parsing for all the cgroup // categories and functionality in a simple way. diff --git a/pkg/cgroup/linux_test.go b/pkg/cgroup/linux_test.go index 9cf64bba5..5b9dc4c53 100644 --- a/pkg/cgroup/linux_test.go +++ b/pkg/cgroup/linux_test.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cgroup diff --git a/pkg/cgroup/others.go b/pkg/cgroup/others.go index ade1f0e60..968eb5f8c 100644 --- a/pkg/cgroup/others.go +++ b/pkg/cgroup/others.go @@ -1,19 +1,20 @@ // +build !linux -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package cgroup diff --git a/pkg/color/color.go b/pkg/color/color.go index f5353a91c..d9974a92b 100644 --- a/pkg/color/color.go +++ b/pkg/color/color.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package color diff --git a/pkg/console/console.go b/pkg/console/console.go index 47bff7033..f3be31abe 100644 --- a/pkg/console/console.go +++ b/pkg/console/console.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package console implements console printing helpers package console diff --git a/pkg/console/console_test.go b/pkg/console/console_test.go index 354b7d882..dda1ccbbf 100644 --- a/pkg/console/console_test.go +++ b/pkg/console/console_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package console diff --git a/pkg/console/themes.go b/pkg/console/themes.go index d7056ba0f..9ee14a1f0 100644 --- a/pkg/console/themes.go +++ b/pkg/console/themes.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package console diff --git a/pkg/disk/directio_darwin.go b/pkg/disk/directio_darwin.go index b6cd4a2ba..6f2b3393d 100644 --- a/pkg/disk/directio_darwin.go +++ b/pkg/disk/directio_darwin.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019-2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/directio_unix.go b/pkg/disk/directio_unix.go index 16c2cf110..907a88878 100644 --- a/pkg/disk/directio_unix.go +++ b/pkg/disk/directio_unix.go @@ -1,20 +1,21 @@ // +build linux netbsd freebsd -/* - * Minio Cloud Storage, (C) 2019-2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/directio_unsupported.go b/pkg/disk/directio_unsupported.go index d44f033a9..c63edacc0 100644 --- a/pkg/disk/directio_unsupported.go +++ b/pkg/disk/directio_unsupported.go @@ -1,20 +1,21 @@ // +build !linux,!netbsd,!freebsd,!darwin -/* - * Minio Cloud Storage, (C) 2019-2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/disk.go b/pkg/disk/disk.go index 5d326d5d7..73be8f159 100644 --- a/pkg/disk/disk.go +++ b/pkg/disk/disk.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/disk_test.go b/pkg/disk/disk_test.go index 678f27454..ec1b197d4 100644 --- a/pkg/disk/disk_test.go +++ b/pkg/disk/disk_test.go @@ -1,20 +1,21 @@ // +build !netbsd,!solaris -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk_test diff --git a/pkg/disk/disk_unix.go b/pkg/disk/disk_unix.go index a40fe86cb..5c5a8f786 100644 --- a/pkg/disk/disk_unix.go +++ b/pkg/disk/disk_unix.go @@ -1,20 +1,21 @@ // +build !windows -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/disk_windows.go b/pkg/disk/disk_windows.go index ca22b774c..182793546 100644 --- a/pkg/disk/disk_windows.go +++ b/pkg/disk/disk_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/fdatasync_linux.go b/pkg/disk/fdatasync_linux.go index d88b1d537..6f12551ef 100644 --- a/pkg/disk/fdatasync_linux.go +++ b/pkg/disk/fdatasync_linux.go @@ -1,20 +1,21 @@ // +build linux -/* - * Minio Cloud Storage, (C) 2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/fdatasync_unix.go b/pkg/disk/fdatasync_unix.go index 44d7c6205..3b758cf5e 100644 --- a/pkg/disk/fdatasync_unix.go +++ b/pkg/disk/fdatasync_unix.go @@ -1,20 +1,21 @@ // +build freebsd netbsd openbsd darwin -/* - * Minio Cloud Storage, (C) 2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/fdatasync_unsupported.go b/pkg/disk/fdatasync_unsupported.go index e215286ef..f5699e4de 100644 --- a/pkg/disk/fdatasync_unsupported.go +++ b/pkg/disk/fdatasync_unsupported.go @@ -1,20 +1,21 @@ // +build !linux,!netbsd,!freebsd,!darwin,!openbsd -/* - * Minio Cloud Storage, (C) 2020 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/health.go b/pkg/disk/health.go index 59efb6d9c..2cd3dbc40 100644 --- a/pkg/disk/health.go +++ b/pkg/disk/health.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/root_disk.go b/pkg/disk/root_disk.go index 9b16f23ee..d29b4c759 100644 --- a/pkg/disk/root_disk.go +++ b/pkg/disk/root_disk.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_bsd.go b/pkg/disk/stat_bsd.go index 601695c0c..a51d8d294 100644 --- a/pkg/disk/stat_bsd.go +++ b/pkg/disk/stat_bsd.go @@ -1,20 +1,21 @@ // +build darwin dragonfly -/* - * MinIO Cloud Storage, (C) 2015-2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_freebsd.go b/pkg/disk/stat_freebsd.go index 2488e9f9b..a19c3720a 100644 --- a/pkg/disk/stat_freebsd.go +++ b/pkg/disk/stat_freebsd.go @@ -1,20 +1,21 @@ // +build freebsd -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_linux.go b/pkg/disk/stat_linux.go index a28d3322c..01c43b0d1 100644 --- a/pkg/disk/stat_linux.go +++ b/pkg/disk/stat_linux.go @@ -1,20 +1,21 @@ // +build linux,!s390x,!arm,!386 -/* - * MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_linux_32bit.go b/pkg/disk/stat_linux_32bit.go index 019e465b8..f58699535 100644 --- a/pkg/disk/stat_linux_32bit.go +++ b/pkg/disk/stat_linux_32bit.go @@ -1,20 +1,21 @@ // +build linux,arm linux,386 -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_linux_s390x.go b/pkg/disk/stat_linux_s390x.go index efb3145db..5d18ce29d 100644 --- a/pkg/disk/stat_linux_s390x.go +++ b/pkg/disk/stat_linux_s390x.go @@ -1,20 +1,21 @@ // +build linux,s390x -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_netbsd.go b/pkg/disk/stat_netbsd.go index abd34d849..b089f9910 100644 --- a/pkg/disk/stat_netbsd.go +++ b/pkg/disk/stat_netbsd.go @@ -1,20 +1,21 @@ // +build netbsd -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_openbsd.go b/pkg/disk/stat_openbsd.go index df6e4f58e..b0333b9c0 100644 --- a/pkg/disk/stat_openbsd.go +++ b/pkg/disk/stat_openbsd.go @@ -1,20 +1,21 @@ // +build openbsd -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_solaris.go b/pkg/disk/stat_solaris.go index 28ab0cdcf..f1abbdb63 100644 --- a/pkg/disk/stat_solaris.go +++ b/pkg/disk/stat_solaris.go @@ -1,20 +1,21 @@ // +build solaris -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/stat_windows.go b/pkg/disk/stat_windows.go index f4acc59e9..d73b4e9b7 100644 --- a/pkg/disk/stat_windows.go +++ b/pkg/disk/stat_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2015 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/type_bsd.go b/pkg/disk/type_bsd.go index 2957ae6a2..22d91cbfc 100644 --- a/pkg/disk/type_bsd.go +++ b/pkg/disk/type_bsd.go @@ -1,20 +1,21 @@ // +build darwin freebsd dragonfly openbsd solaris -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/type_linux.go b/pkg/disk/type_linux.go index 3ea81a763..54bc1b1eb 100644 --- a/pkg/disk/type_linux.go +++ b/pkg/disk/type_linux.go @@ -1,20 +1,21 @@ // +build linux,!s390x,!arm,!386 -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/disk/type_windows.go b/pkg/disk/type_windows.go index 6ea3e1502..37a076407 100644 --- a/pkg/disk/type_windows.go +++ b/pkg/disk/type_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2015 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package disk diff --git a/pkg/dsync/drwmutex.go b/pkg/dsync/drwmutex.go index 01efd412b..8909630d8 100644 --- a/pkg/dsync/drwmutex.go +++ b/pkg/dsync/drwmutex.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2016 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dsync diff --git a/pkg/dsync/drwmutex_test.go b/pkg/dsync/drwmutex_test.go index f831f9689..c429d8ff4 100644 --- a/pkg/dsync/drwmutex_test.go +++ b/pkg/dsync/drwmutex_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2016 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dsync_test diff --git a/pkg/dsync/dsync-server_test.go b/pkg/dsync/dsync-server_test.go index ea75ef2d3..a8daba9f3 100644 --- a/pkg/dsync/dsync-server_test.go +++ b/pkg/dsync/dsync-server_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2016 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dsync_test diff --git a/pkg/dsync/dsync.go b/pkg/dsync/dsync.go index 8cae0051f..2688abd30 100644 --- a/pkg/dsync/dsync.go +++ b/pkg/dsync/dsync.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2016 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dsync diff --git a/pkg/dsync/dsync_test.go b/pkg/dsync/dsync_test.go index e0094865d..646653cad 100644 --- a/pkg/dsync/dsync_test.go +++ b/pkg/dsync/dsync_test.go @@ -1,20 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2016 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// GOMAXPROCS=10 go test +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dsync_test diff --git a/pkg/dsync/rpc-client-impl_test.go b/pkg/dsync/rpc-client-impl_test.go index 432ea4d09..0692c0592 100644 --- a/pkg/dsync/rpc-client-impl_test.go +++ b/pkg/dsync/rpc-client-impl_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2016 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dsync_test diff --git a/pkg/dsync/rpc-client-interface.go b/pkg/dsync/rpc-client-interface.go index 1d2c89073..dbf5659be 100644 --- a/pkg/dsync/rpc-client-interface.go +++ b/pkg/dsync/rpc-client-interface.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2016 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package dsync diff --git a/pkg/ellipses/ellipses.go b/pkg/ellipses/ellipses.go index 8ec8d1322..90dbe216a 100644 --- a/pkg/ellipses/ellipses.go +++ b/pkg/ellipses/ellipses.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ellipses diff --git a/pkg/ellipses/ellipses_test.go b/pkg/ellipses/ellipses_test.go index 03aa3da72..c37fcaa42 100644 --- a/pkg/ellipses/ellipses_test.go +++ b/pkg/ellipses/ellipses_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ellipses diff --git a/pkg/env/env.go b/pkg/env/env.go index 86ae8e05e..d663d6ba7 100644 --- a/pkg/env/env.go +++ b/pkg/env/env.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package env diff --git a/pkg/env/web_env.go b/pkg/env/web_env.go index 7e0fd9032..dfa2b78df 100644 --- a/pkg/env/web_env.go +++ b/pkg/env/web_env.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package env diff --git a/pkg/env/web_env_test.go b/pkg/env/web_env_test.go index 759dbe3ff..5d8c14905 100644 --- a/pkg/env/web_env_test.go +++ b/pkg/env/web_env_test.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package env diff --git a/pkg/etag/etag.go b/pkg/etag/etag.go index 83a6e8646..326b99265 100644 --- a/pkg/etag/etag.go +++ b/pkg/etag/etag.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package etag provides an implementation of S3 ETags. // diff --git a/pkg/etag/etag_test.go b/pkg/etag/etag_test.go index f6e0a6e09..f1f1167fd 100644 --- a/pkg/etag/etag_test.go +++ b/pkg/etag/etag_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package etag diff --git a/pkg/etag/reader.go b/pkg/etag/reader.go index 9ff80963b..2e5203ce1 100644 --- a/pkg/etag/reader.go +++ b/pkg/etag/reader.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package etag diff --git a/pkg/event/arn.go b/pkg/event/arn.go index 1111701ce..4355338ba 100644 --- a/pkg/event/arn.go +++ b/pkg/event/arn.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/arn_test.go b/pkg/event/arn_test.go index fd6e18682..f9281fad1 100644 --- a/pkg/event/arn_test.go +++ b/pkg/event/arn_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/config.go b/pkg/event/config.go index 41bf51967..cbe0a1987 100644 --- a/pkg/event/config.go +++ b/pkg/event/config.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/config_test.go b/pkg/event/config_test.go index a7a92e75e..8bf6dddac 100644 --- a/pkg/event/config_test.go +++ b/pkg/event/config_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/errors.go b/pkg/event/errors.go index d06acd48c..f1b542064 100644 --- a/pkg/event/errors.go +++ b/pkg/event/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/event.go b/pkg/event/event.go index 85fb8e9ab..feb5d03a9 100644 --- a/pkg/event/event.go +++ b/pkg/event/event.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/name.go b/pkg/event/name.go index d2ccfc3e1..576721ce7 100644 --- a/pkg/event/name.go +++ b/pkg/event/name.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/name_test.go b/pkg/event/name_test.go index 317f1c8e7..5bb67a09c 100644 --- a/pkg/event/name_test.go +++ b/pkg/event/name_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/rules.go b/pkg/event/rules.go index c68d392b8..d6e90fd2c 100644 --- a/pkg/event/rules.go +++ b/pkg/event/rules.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/rules_test.go b/pkg/event/rules_test.go index 4e2e950a0..128fccccb 100644 --- a/pkg/event/rules_test.go +++ b/pkg/event/rules_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/rulesmap.go b/pkg/event/rulesmap.go index 8f6e32fa5..835d25bee 100644 --- a/pkg/event/rulesmap.go +++ b/pkg/event/rulesmap.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/rulesmap_test.go b/pkg/event/rulesmap_test.go index 853a2996e..832006b7e 100644 --- a/pkg/event/rulesmap_test.go +++ b/pkg/event/rulesmap_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/target/amqp.go b/pkg/event/target/amqp.go index 3a9b0a9ee..c92970ca8 100644 --- a/pkg/event/target/amqp.go +++ b/pkg/event/target/amqp.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/common.go b/pkg/event/target/common.go index 967db8500..9a5eae111 100644 --- a/pkg/event/target/common.go +++ b/pkg/event/target/common.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/elasticsearch.go b/pkg/event/target/elasticsearch.go index 255d51585..2c948dead 100644 --- a/pkg/event/target/elasticsearch.go +++ b/pkg/event/target/elasticsearch.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/kafka.go b/pkg/event/target/kafka.go index 58aa4114d..8b4831404 100644 --- a/pkg/event/target/kafka.go +++ b/pkg/event/target/kafka.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/kafka_scram_client.go b/pkg/event/target/kafka_scram_client.go index 3cd951209..02313ae9b 100644 --- a/pkg/event/target/kafka_scram_client.go +++ b/pkg/event/target/kafka_scram_client.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/mqtt.go b/pkg/event/target/mqtt.go index 866fed156..5ce348097 100644 --- a/pkg/event/target/mqtt.go +++ b/pkg/event/target/mqtt.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/mysql.go b/pkg/event/target/mysql.go index 7eb94517b..f7b7fb23b 100644 --- a/pkg/event/target/mysql.go +++ b/pkg/event/target/mysql.go @@ -1,55 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// MySQL Notifier implementation. Two formats, "namespace" and -// "access" are supported. +// Copyright (c) 2015-2021 MinIO, Inc. // -// * Namespace format +// This file is part of MinIO Object Storage stack // -// On each create or update object event in MinIO Object storage -// server, a row is created or updated in the table in MySQL. On each -// object removal, the corresponding row is deleted from the table. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// A table with a specific structure (column names, column types, and -// primary key/uniqueness constraint) is used. The user may set the -// table name in the configuration. A sample SQL command that creates -// a command with the required structure is: +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. // -// CREATE TABLE myminio ( -// key_name VARCHAR(2048), -// value JSONB, -// PRIMARY KEY (key_name), -// ); -// -// MySQL's "INSERT ... ON DUPLICATE ..." feature (UPSERT) is used -// here. The implementation has been tested with MySQL Ver 14.14 -// Distrib 5.7.17. -// -// * Access format -// -// On each event, a row is appended to the configured table. There is -// no deletion or modification of existing rows. -// -// A different table schema is used for this format. A sample SQL -// commant that creates a table with the required structure is: -// -// CREATE TABLE myminio ( -// event_time TIMESTAMP WITH TIME ZONE NOT NULL, -// event_data JSONB -// ); +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/mysql_test.go b/pkg/event/target/mysql_test.go index b2f79ffbe..4b08aa3d9 100644 --- a/pkg/event/target/mysql_test.go +++ b/pkg/event/target/mysql_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/nats.go b/pkg/event/target/nats.go index 93e8a9339..1134a4c54 100644 --- a/pkg/event/target/nats.go +++ b/pkg/event/target/nats.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/nats_test.go b/pkg/event/target/nats_test.go index 531bc07ff..f61bc1cac 100644 --- a/pkg/event/target/nats_test.go +++ b/pkg/event/target/nats_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/nats_tls_test.go b/pkg/event/target/nats_tls_test.go index 54046d53c..b44081e0b 100644 --- a/pkg/event/target/nats_tls_test.go +++ b/pkg/event/target/nats_tls_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/nsq.go b/pkg/event/target/nsq.go index 198ec6243..bb8266424 100644 --- a/pkg/event/target/nsq.go +++ b/pkg/event/target/nsq.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/nsq_test.go b/pkg/event/target/nsq_test.go index 81d70a000..809f64578 100644 --- a/pkg/event/target/nsq_test.go +++ b/pkg/event/target/nsq_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/postgresql.go b/pkg/event/target/postgresql.go index c1a10a0f7..a5ee13741 100644 --- a/pkg/event/target/postgresql.go +++ b/pkg/event/target/postgresql.go @@ -1,55 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// PostgreSQL Notifier implementation. Two formats, "namespace" and -// "access" are supported. +// Copyright (c) 2015-2021 MinIO, Inc. // -// * Namespace format +// This file is part of MinIO Object Storage stack // -// On each create or update object event in MinIO Object storage -// server, a row is created or updated in the table in Postgres. On -// each object removal, the corresponding row is deleted from the -// table. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// A table with a specific structure (column names, column types, and -// primary key/uniqueness constraint) is used. The user may set the -// table name in the configuration. A sample SQL command that creates -// a table with the required structure is: +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. // -// CREATE TABLE myminio ( -// key VARCHAR PRIMARY KEY, -// value JSONB -// ); -// -// PostgreSQL's "INSERT ... ON CONFLICT ... DO UPDATE ..." feature -// (UPSERT) is used here, so the minimum version of PostgreSQL -// required is 9.5. -// -// * Access format -// -// On each event, a row is appended to the configured table. There is -// no deletion or modification of existing rows. -// -// A different table schema is used for this format. A sample SQL -// commant that creates a table with the required structure is: -// -// CREATE TABLE myminio ( -// event_time TIMESTAMP WITH TIME ZONE NOT NULL, -// event_data JSONB -// ); +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/postgresql_test.go b/pkg/event/target/postgresql_test.go index c90777c27..d624aa9db 100644 --- a/pkg/event/target/postgresql_test.go +++ b/pkg/event/target/postgresql_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/queuestore.go b/pkg/event/target/queuestore.go index 4b2dcf158..9d4504a4a 100644 --- a/pkg/event/target/queuestore.go +++ b/pkg/event/target/queuestore.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/queuestore_test.go b/pkg/event/target/queuestore_test.go index 3638cb65e..7569b8a26 100644 --- a/pkg/event/target/queuestore_test.go +++ b/pkg/event/target/queuestore_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/redis.go b/pkg/event/target/redis.go index fdb093e87..9436be34c 100644 --- a/pkg/event/target/redis.go +++ b/pkg/event/target/redis.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/store.go b/pkg/event/target/store.go index 9f058efcb..244e9a642 100644 --- a/pkg/event/target/store.go +++ b/pkg/event/target/store.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/target/webhook.go b/pkg/event/target/webhook.go index b35cbe57d..86b59cf62 100644 --- a/pkg/event/target/webhook.go +++ b/pkg/event/target/webhook.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package target diff --git a/pkg/event/targetid.go b/pkg/event/targetid.go index b53f72f29..7d8664fed 100644 --- a/pkg/event/targetid.go +++ b/pkg/event/targetid.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/targetid_test.go b/pkg/event/targetid_test.go index 974c95c6c..83d8c67d6 100644 --- a/pkg/event/targetid_test.go +++ b/pkg/event/targetid_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/targetidset.go b/pkg/event/targetidset.go index f728107af..da3ec279e 100644 --- a/pkg/event/targetidset.go +++ b/pkg/event/targetidset.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/targetidset_test.go b/pkg/event/targetidset_test.go index b4eb03f45..6d9feafc3 100644 --- a/pkg/event/targetidset_test.go +++ b/pkg/event/targetidset_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/targetlist.go b/pkg/event/targetlist.go index 214c2ac5c..5b5155bbf 100644 --- a/pkg/event/targetlist.go +++ b/pkg/event/targetlist.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/event/targetlist_test.go b/pkg/event/targetlist_test.go index 905b442e4..eaac18fd3 100644 --- a/pkg/event/targetlist_test.go +++ b/pkg/event/targetlist_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package event diff --git a/pkg/fips/api.go b/pkg/fips/api.go index e132650dc..6e5073e5c 100644 --- a/pkg/fips/api.go +++ b/pkg/fips/api.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package fips provides functionality to configure cryptographic // implementations compliant with FIPS 140. diff --git a/pkg/fips/fips.go b/pkg/fips/fips.go index 1d2571ceb..2417c0eb4 100644 --- a/pkg/fips/fips.go +++ b/pkg/fips/fips.go @@ -1,18 +1,21 @@ // +build fips -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package fips diff --git a/pkg/fips/no_fips.go b/pkg/fips/no_fips.go index 2ffd7e493..b22c59b74 100644 --- a/pkg/fips/no_fips.go +++ b/pkg/fips/no_fips.go @@ -1,18 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//+build !fips +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package fips diff --git a/pkg/handlers/forwarder.go b/pkg/handlers/forwarder.go index b299115ed..b4a77223c 100644 --- a/pkg/handlers/forwarder.go +++ b/pkg/handlers/forwarder.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package handlers diff --git a/pkg/handlers/proxy.go b/pkg/handlers/proxy.go index e0efdae24..f23d4fd73 100644 --- a/pkg/handlers/proxy.go +++ b/pkg/handlers/proxy.go @@ -1,18 +1,23 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +// Originally from https://github.com/gorilla/handlers with following license +// https://raw.githubusercontent.com/gorilla/handlers/master/LICENSE, forked +// and heavily modified for MinIO's internal needs. package handlers diff --git a/pkg/handlers/proxy_test.go b/pkg/handlers/proxy_test.go index 2b17920c2..240b9d6be 100644 --- a/pkg/handlers/proxy_test.go +++ b/pkg/handlers/proxy_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package handlers diff --git a/pkg/hash/errors.go b/pkg/hash/errors.go index af2beb5c5..577aa5b79 100644 --- a/pkg/hash/errors.go +++ b/pkg/hash/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package hash diff --git a/pkg/hash/reader.go b/pkg/hash/reader.go index a86368eec..23c635fd8 100644 --- a/pkg/hash/reader.go +++ b/pkg/hash/reader.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package hash diff --git a/pkg/hash/reader_test.go b/pkg/hash/reader_test.go index 14d3e6c93..482a8f14b 100644 --- a/pkg/hash/reader_test.go +++ b/pkg/hash/reader_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package hash diff --git a/pkg/hash/sha256_fips.go b/pkg/hash/sha256_fips.go index 056d68b5b..fc38d5c4e 100644 --- a/pkg/hash/sha256_fips.go +++ b/pkg/hash/sha256_fips.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // +build fips diff --git a/pkg/hash/sha256_nofips.go b/pkg/hash/sha256_nofips.go index f75a7dc27..6a6761844 100644 --- a/pkg/hash/sha256_nofips.go +++ b/pkg/hash/sha256_nofips.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // +build !fips diff --git a/pkg/iam/policy/action.go b/pkg/iam/policy/action.go index a7adf7cc1..5d390fed5 100644 --- a/pkg/iam/policy/action.go +++ b/pkg/iam/policy/action.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/action_test.go b/pkg/iam/policy/action_test.go index 653ee4a57..f1e940910 100644 --- a/pkg/iam/policy/action_test.go +++ b/pkg/iam/policy/action_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/actionset.go b/pkg/iam/policy/actionset.go index 1eef73fa7..d8f1be3c0 100644 --- a/pkg/iam/policy/actionset.go +++ b/pkg/iam/policy/actionset.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/actionset_test.go b/pkg/iam/policy/actionset_test.go index 9cb5c6116..57c58edf3 100644 --- a/pkg/iam/policy/actionset_test.go +++ b/pkg/iam/policy/actionset_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/admin-action.go b/pkg/iam/policy/admin-action.go index a3135ecfc..731591198 100644 --- a/pkg/iam/policy/admin-action.go +++ b/pkg/iam/policy/admin-action.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/constants.go b/pkg/iam/policy/constants.go index 2c33eef4a..e1aa9de52 100644 --- a/pkg/iam/policy/constants.go +++ b/pkg/iam/policy/constants.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/error.go b/pkg/iam/policy/error.go index 726bdd727..8aa2cf3c5 100644 --- a/pkg/iam/policy/error.go +++ b/pkg/iam/policy/error.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/policy.go b/pkg/iam/policy/policy.go index 1b060c1d0..182e6f5e3 100644 --- a/pkg/iam/policy/policy.go +++ b/pkg/iam/policy/policy.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/policy_test.go b/pkg/iam/policy/policy_test.go index ed41946f1..3aa9e220d 100644 --- a/pkg/iam/policy/policy_test.go +++ b/pkg/iam/policy/policy_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/resource.go b/pkg/iam/policy/resource.go index d8d66001e..44d3d2520 100644 --- a/pkg/iam/policy/resource.go +++ b/pkg/iam/policy/resource.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/resource_test.go b/pkg/iam/policy/resource_test.go index a6c7e6efd..a383084e8 100644 --- a/pkg/iam/policy/resource_test.go +++ b/pkg/iam/policy/resource_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/resourceset.go b/pkg/iam/policy/resourceset.go index 4d71df231..cef5649dd 100644 --- a/pkg/iam/policy/resourceset.go +++ b/pkg/iam/policy/resourceset.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/resourceset_test.go b/pkg/iam/policy/resourceset_test.go index 5395bdd61..5cf4f6692 100644 --- a/pkg/iam/policy/resourceset_test.go +++ b/pkg/iam/policy/resourceset_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/statement.go b/pkg/iam/policy/statement.go index 03ff824e7..455e63878 100644 --- a/pkg/iam/policy/statement.go +++ b/pkg/iam/policy/statement.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/iam/policy/statement_test.go b/pkg/iam/policy/statement_test.go index 3b290ff73..629d99afe 100644 --- a/pkg/iam/policy/statement_test.go +++ b/pkg/iam/policy/statement_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package iampolicy diff --git a/pkg/ioutil/append-file_nix.go b/pkg/ioutil/append-file_nix.go index 3e60383dc..27154b189 100644 --- a/pkg/ioutil/append-file_nix.go +++ b/pkg/ioutil/append-file_nix.go @@ -1,20 +1,21 @@ // +build !windows -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ioutil diff --git a/pkg/ioutil/append-file_windows.go b/pkg/ioutil/append-file_windows.go index c93cb5fd5..729f3930c 100644 --- a/pkg/ioutil/append-file_windows.go +++ b/pkg/ioutil/append-file_windows.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ioutil diff --git a/pkg/ioutil/ioutil.go b/pkg/ioutil/ioutil.go index 31771ebbc..ee15c0963 100644 --- a/pkg/ioutil/ioutil.go +++ b/pkg/ioutil/ioutil.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package ioutil implements some I/O utility functions which are not covered // by the standard library. diff --git a/pkg/ioutil/ioutil_test.go b/pkg/ioutil/ioutil_test.go index 3d083339c..b9d0e1f50 100644 --- a/pkg/ioutil/ioutil_test.go +++ b/pkg/ioutil/ioutil_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ioutil diff --git a/pkg/ioutil/read_file.go b/pkg/ioutil/read_file.go index 50e67349c..6e4ce1ff0 100644 --- a/pkg/ioutil/read_file.go +++ b/pkg/ioutil/read_file.go @@ -1,23 +1,24 @@ -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Forked from golang.org/pkg/os.ReadFile with NOATIME support. // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. +// license that can be found in the https://golang.org/LICENSE file. package ioutil diff --git a/pkg/ioutil/read_file_noatime_notsupported.go b/pkg/ioutil/read_file_noatime_notsupported.go index 013ff3990..8543b626e 100644 --- a/pkg/ioutil/read_file_noatime_notsupported.go +++ b/pkg/ioutil/read_file_noatime_notsupported.go @@ -1,20 +1,21 @@ // +build windows darwin freebsd -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ioutil diff --git a/pkg/ioutil/read_file_noatime_supported.go b/pkg/ioutil/read_file_noatime_supported.go index c632164bf..8b966f46d 100644 --- a/pkg/ioutil/read_file_noatime_supported.go +++ b/pkg/ioutil/read_file_noatime_supported.go @@ -1,20 +1,21 @@ // +build !windows,!darwin,!freebsd -/* - * MinIO Cloud Storage, (C) 2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package ioutil diff --git a/pkg/kms/context.go b/pkg/kms/context.go index ac570ad19..34f4edd6b 100644 --- a/pkg/kms/context.go +++ b/pkg/kms/context.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package kms diff --git a/pkg/kms/dek_test.go b/pkg/kms/dek_test.go index 8dfec5bea..dd83eca6e 100644 --- a/pkg/kms/dek_test.go +++ b/pkg/kms/dek_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package kms diff --git a/pkg/kms/kms.go b/pkg/kms/kms.go index 0dd39749d..b47107739 100644 --- a/pkg/kms/kms.go +++ b/pkg/kms/kms.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package kms diff --git a/pkg/kms/single-key.go b/pkg/kms/single-key.go index bbbd5201b..3009dc1e3 100644 --- a/pkg/kms/single-key.go +++ b/pkg/kms/single-key.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package kms diff --git a/pkg/kms/single-key_test.go b/pkg/kms/single-key_test.go index d8743c236..714a5cf72 100644 --- a/pkg/kms/single-key_test.go +++ b/pkg/kms/single-key_test.go @@ -1,16 +1,19 @@ -// MinIO Cloud Storage, (C) 2021 MinIO, Inc. +// Copyright (c) 2015-2021 MinIO, Inc. // -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at +// This file is part of MinIO Object Storage stack // -// http://www.apache.org/licenses/LICENSE-2.0 +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package kms diff --git a/pkg/licverifier/verifier.go b/pkg/licverifier/verifier.go index acdbf0c4b..36bc435f8 100644 --- a/pkg/licverifier/verifier.go +++ b/pkg/licverifier/verifier.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package licverifier implements a simple library to verify MinIO Subnet license keys. package licverifier diff --git a/pkg/licverifier/verifier_test.go b/pkg/licverifier/verifier_test.go index 14f4beaf8..51af1beb5 100644 --- a/pkg/licverifier/verifier_test.go +++ b/pkg/licverifier/verifier_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package licverifier diff --git a/pkg/lock/lock.go b/pkg/lock/lock.go index ed8d622cd..d0727596b 100644 --- a/pkg/lock/lock.go +++ b/pkg/lock/lock.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package lock - implements filesystem locking wrappers around an // open file descriptor. diff --git a/pkg/lock/lock_nix.go b/pkg/lock/lock_nix.go index c7c3a1a32..d64edf6db 100644 --- a/pkg/lock/lock_nix.go +++ b/pkg/lock/lock_nix.go @@ -1,20 +1,21 @@ // +build !windows,!plan9,!solaris -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lock diff --git a/pkg/lock/lock_solaris.go b/pkg/lock/lock_solaris.go index e20c6fe83..3012ce375 100644 --- a/pkg/lock/lock_solaris.go +++ b/pkg/lock/lock_solaris.go @@ -1,20 +1,21 @@ // +build solaris -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lock diff --git a/pkg/lock/lock_test.go b/pkg/lock/lock_test.go index e00574a4d..0ebd5c5d2 100644 --- a/pkg/lock/lock_test.go +++ b/pkg/lock/lock_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lock diff --git a/pkg/lock/lock_windows.go b/pkg/lock/lock_windows.go index f02794b56..f1908fbb7 100644 --- a/pkg/lock/lock_windows.go +++ b/pkg/lock/lock_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lock diff --git a/pkg/lock/lock_windows_test.go b/pkg/lock/lock_windows_test.go index ae8bb8b1c..263c164c7 100644 --- a/pkg/lock/lock_windows_test.go +++ b/pkg/lock/lock_windows_test.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lock diff --git a/pkg/lsync/lrwmutex.go b/pkg/lsync/lrwmutex.go index ddeea13e4..19625d6c6 100644 --- a/pkg/lsync/lrwmutex.go +++ b/pkg/lsync/lrwmutex.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2017 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lsync diff --git a/pkg/lsync/lrwmutex_test.go b/pkg/lsync/lrwmutex_test.go index fdc4fc6a6..1306c6b4b 100644 --- a/pkg/lsync/lrwmutex_test.go +++ b/pkg/lsync/lrwmutex_test.go @@ -1,20 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2017 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// GOMAXPROCS=10 go test +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package lsync_test diff --git a/pkg/madmin/api-error-response.go b/pkg/madmin/api-error-response.go index 48cb779f1..e45265341 100644 --- a/pkg/madmin/api-error-response.go +++ b/pkg/madmin/api-error-response.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/api-log-entry.go b/pkg/madmin/api-log-entry.go index 85bd3cb38..5f9bcab60 100644 --- a/pkg/madmin/api-log-entry.go +++ b/pkg/madmin/api-log-entry.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/api-log.go b/pkg/madmin/api-log.go index 0d1448b5d..7d0af2065 100644 --- a/pkg/madmin/api-log.go +++ b/pkg/madmin/api-log.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/api.go b/pkg/madmin/api.go index 1747ff65f..423a12ff2 100644 --- a/pkg/madmin/api.go +++ b/pkg/madmin/api.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/api_test.go b/pkg/madmin/api_test.go index b3881c89d..c13ebb03c 100644 --- a/pkg/madmin/api_test.go +++ b/pkg/madmin/api_test.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package madmin_test package madmin_test diff --git a/pkg/madmin/bandwidth.go b/pkg/madmin/bandwidth.go index e0d0da824..539661d71 100644 --- a/pkg/madmin/bandwidth.go +++ b/pkg/madmin/bandwidth.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin @@ -23,14 +23,23 @@ import ( "net/http" "net/url" "strings" - - "github.com/minio/minio/pkg/bandwidth" ) +// BandwidthDetails for the measured bandwidth +type BandwidthDetails struct { + LimitInBytesPerSecond int64 `json:"limitInBits"` + CurrentBandwidthInBytesPerSecond float64 `json:"currentBandwidth"` +} + +// BucketBandwidthReport captures the details for all buckets. +type BucketBandwidthReport struct { + BucketStats map[string]BandwidthDetails `json:"bucketStats,omitempty"` +} + // Report includes the bandwidth report or the error encountered. type Report struct { - Report bandwidth.Report `json:"report"` - Err error `json:"error,omitempty"` + Report BucketBandwidthReport `json:"report"` + Err error `json:"error,omitempty"` } // GetBucketBandwidth - Gets a channel reporting bandwidth measurements for replication buckets. If no buckets @@ -49,11 +58,11 @@ func (adm *AdminClient) GetBucketBandwidth(ctx context.Context, buckets ...strin resp, err := adm.executeMethod(ctx, http.MethodGet, reqData) if err != nil { defer closeResponse(resp) - ch <- Report{bandwidth.Report{}, err} + ch <- Report{Err: err} return ch } if resp.StatusCode != http.StatusOK { - ch <- Report{bandwidth.Report{}, httpRespToErrorResponse(resp)} + ch <- Report{Err: httpRespToErrorResponse(resp)} return ch } @@ -65,16 +74,16 @@ func (adm *AdminClient) GetBucketBandwidth(ctx context.Context, buckets ...strin close(ch) }() for { - var report bandwidth.Report + var report BucketBandwidthReport if err = dec.Decode(&report); err != nil { - ch <- Report{bandwidth.Report{}, err} + ch <- Report{Err: err} return } select { case <-ctx.Done(): return - case ch <- Report{Report: report, Err: err}: + case ch <- Report{Report: report}: } } }(ctx, ch, resp) diff --git a/pkg/madmin/config-commands.go b/pkg/madmin/config-commands.go index 3cdf43ac6..c0a8499b2 100644 --- a/pkg/madmin/config-commands.go +++ b/pkg/madmin/config-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/config-help-commands.go b/pkg/madmin/config-help-commands.go index bfcc61ef7..837678406 100644 --- a/pkg/madmin/config-help-commands.go +++ b/pkg/madmin/config-help-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/config-history-commands.go b/pkg/madmin/config-history-commands.go index a1838ac8c..9cbebecaa 100644 --- a/pkg/madmin/config-history-commands.go +++ b/pkg/madmin/config-history-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/config-kv-commands.go b/pkg/madmin/config-kv-commands.go index 403fa12d1..150943d02 100644 --- a/pkg/madmin/config-kv-commands.go +++ b/pkg/madmin/config-kv-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/encrypt.go b/pkg/madmin/encrypt.go index 08942479a..6fb4caefc 100644 --- a/pkg/madmin/encrypt.go +++ b/pkg/madmin/encrypt.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/encrypt_fips.go b/pkg/madmin/encrypt_fips.go new file mode 100644 index 000000000..6dbb45390 --- /dev/null +++ b/pkg/madmin/encrypt_fips.go @@ -0,0 +1,25 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +// +build fips + +package madmin + +// useAES always returns true since AES is the only +// option out of AES-GCM and ChaCha20-Poly1305 that +// is approved by the NIST. +func useAES() bool { return true } diff --git a/pkg/madmin/encrypt_nofips.go b/pkg/madmin/encrypt_nofips.go new file mode 100644 index 000000000..0ea666e4d --- /dev/null +++ b/pkg/madmin/encrypt_nofips.go @@ -0,0 +1,27 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +// +build !fips + +package madmin + +import "github.com/secure-io/sio-go/sioutil" + +// useAES returns true if the executing CPU provides +// AES-GCM hardware instructions and an optimized +// assembler implementation is available. +func useAES() bool { return sioutil.NativeAES() } diff --git a/pkg/madmin/encrypt_test.go b/pkg/madmin/encrypt_test.go index 6243c9514..0073a4133 100644 --- a/pkg/madmin/encrypt_test.go +++ b/pkg/madmin/encrypt_test.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/examples/accounting-info.go b/pkg/madmin/examples/accounting-info.go index d3e5b8235..9b86b2cd0 100644 --- a/pkg/madmin/examples/accounting-info.go +++ b/pkg/madmin/examples/accounting-info.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/add-user-and-policy.go b/pkg/madmin/examples/add-user-and-policy.go index ae078b68c..fd5af3abe 100644 --- a/pkg/madmin/examples/add-user-and-policy.go +++ b/pkg/madmin/examples/add-user-and-policy.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/bucket-bandwidth.go b/pkg/madmin/examples/bucket-bandwidth.go index 33fc76144..4a070b755 100644 --- a/pkg/madmin/examples/bucket-bandwidth.go +++ b/pkg/madmin/examples/bucket-bandwidth.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/bucket-quota.go b/pkg/madmin/examples/bucket-quota.go index 7b75c0969..aec3ef136 100644 --- a/pkg/madmin/examples/bucket-quota.go +++ b/pkg/madmin/examples/bucket-quota.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/bucket-target.go b/pkg/madmin/examples/bucket-target.go index 74a935e63..a52a580d7 100644 --- a/pkg/madmin/examples/bucket-target.go +++ b/pkg/madmin/examples/bucket-target.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/data-usage-info.go b/pkg/madmin/examples/data-usage-info.go index 19a7a0019..2c8c7f7e5 100644 --- a/pkg/madmin/examples/data-usage-info.go +++ b/pkg/madmin/examples/data-usage-info.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/heal-bucket.go b/pkg/madmin/examples/heal-bucket.go index 24f7cdd03..b803e2362 100644 --- a/pkg/madmin/examples/heal-bucket.go +++ b/pkg/madmin/examples/heal-bucket.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/heal-format.go b/pkg/madmin/examples/heal-format.go index 2edfa1893..d40b2c9ba 100644 --- a/pkg/madmin/examples/heal-format.go +++ b/pkg/madmin/examples/heal-format.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/heal-object.go b/pkg/madmin/examples/heal-object.go index 13f2e4e3c..013a121fb 100644 --- a/pkg/madmin/examples/heal-object.go +++ b/pkg/madmin/examples/heal-object.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/heal-status.go b/pkg/madmin/examples/heal-status.go index 639420e7f..50e9672d7 100644 --- a/pkg/madmin/examples/heal-status.go +++ b/pkg/madmin/examples/heal-status.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/kms-status.go b/pkg/madmin/examples/kms-status.go index a18bad58f..f1a246770 100644 --- a/pkg/madmin/examples/kms-status.go +++ b/pkg/madmin/examples/kms-status.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/lock-clear.go b/pkg/madmin/examples/lock-clear.go index 04ffaac9a..50a70ce02 100644 --- a/pkg/madmin/examples/lock-clear.go +++ b/pkg/madmin/examples/lock-clear.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/profiling.go b/pkg/madmin/examples/profiling.go index a04c25b28..b4909dd7e 100644 --- a/pkg/madmin/examples/profiling.go +++ b/pkg/madmin/examples/profiling.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/server-info.go b/pkg/madmin/examples/server-info.go index 79f99298a..b14487efe 100644 --- a/pkg/madmin/examples/server-info.go +++ b/pkg/madmin/examples/server-info.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/service-accounts.go b/pkg/madmin/examples/service-accounts.go index 20bcbf8bc..5c13e9e25 100644 --- a/pkg/madmin/examples/service-accounts.go +++ b/pkg/madmin/examples/service-accounts.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/service-restart.go b/pkg/madmin/examples/service-restart.go index 0586d3deb..daac42a4a 100644 --- a/pkg/madmin/examples/service-restart.go +++ b/pkg/madmin/examples/service-restart.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/service-trace.go b/pkg/madmin/examples/service-trace.go index 6380e0bbd..bf1b0487d 100644 --- a/pkg/madmin/examples/service-trace.go +++ b/pkg/madmin/examples/service-trace.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/storage-info.go b/pkg/madmin/examples/storage-info.go index d9ce4c340..7499a1fdc 100644 --- a/pkg/madmin/examples/storage-info.go +++ b/pkg/madmin/examples/storage-info.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/examples/top-locks.go b/pkg/madmin/examples/top-locks.go index 93f6911c7..d7065fed6 100644 --- a/pkg/madmin/examples/top-locks.go +++ b/pkg/madmin/examples/top-locks.go @@ -1,21 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/madmin/group-commands.go b/pkg/madmin/group-commands.go index fa31116bb..ec223e66c 100644 --- a/pkg/madmin/group-commands.go +++ b/pkg/madmin/group-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/heal-commands.go b/pkg/madmin/heal-commands.go index 0fea8ad07..6ace3e970 100644 --- a/pkg/madmin/heal-commands.go +++ b/pkg/madmin/heal-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/heal-commands_test.go b/pkg/madmin/heal-commands_test.go index 7423f8671..5b598b26b 100644 --- a/pkg/madmin/heal-commands_test.go +++ b/pkg/madmin/heal-commands_test.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/health.go b/pkg/madmin/health.go index 4e07a1cf4..e228028ba 100644 --- a/pkg/madmin/health.go +++ b/pkg/madmin/health.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/info-commands.go b/pkg/madmin/info-commands.go index db8f4bb1a..a5daa022f 100644 --- a/pkg/madmin/info-commands.go +++ b/pkg/madmin/info-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/kms-commands.go b/pkg/madmin/kms-commands.go index 318683573..00c7dc368 100644 --- a/pkg/madmin/kms-commands.go +++ b/pkg/madmin/kms-commands.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/parse-kv.go b/pkg/madmin/parse-kv.go index 982559980..1aea14e45 100644 --- a/pkg/madmin/parse-kv.go +++ b/pkg/madmin/parse-kv.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/policy-commands.go b/pkg/madmin/policy-commands.go index ddf122cdb..82e74bc55 100644 --- a/pkg/madmin/policy-commands.go +++ b/pkg/madmin/policy-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/profiling-commands.go b/pkg/madmin/profiling-commands.go index 84dc96baf..a2621b5c9 100644 --- a/pkg/madmin/profiling-commands.go +++ b/pkg/madmin/profiling-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/quota-commands.go b/pkg/madmin/quota-commands.go index 4a142b5e3..ce0cdba33 100644 --- a/pkg/madmin/quota-commands.go +++ b/pkg/madmin/quota-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/remote-target-commands.go b/pkg/madmin/remote-target-commands.go index 60792aaf3..2ff2643e5 100644 --- a/pkg/madmin/remote-target-commands.go +++ b/pkg/madmin/remote-target-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/retry.go b/pkg/madmin/retry.go index 61f071386..808c908d4 100644 --- a/pkg/madmin/retry.go +++ b/pkg/madmin/retry.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/service-commands.go b/pkg/madmin/service-commands.go index 2df67506b..378da4e6f 100644 --- a/pkg/madmin/service-commands.go +++ b/pkg/madmin/service-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/top-commands.go b/pkg/madmin/top-commands.go index cc5b430b5..180fb939d 100644 --- a/pkg/madmin/top-commands.go +++ b/pkg/madmin/top-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/transport.go b/pkg/madmin/transport.go index 25e10dab6..7cce4d33f 100644 --- a/pkg/madmin/transport.go +++ b/pkg/madmin/transport.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/update-commands.go b/pkg/madmin/update-commands.go index adee12d08..337ab8bed 100644 --- a/pkg/madmin/update-commands.go +++ b/pkg/madmin/update-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/user-commands.go b/pkg/madmin/user-commands.go index a322a4c20..05bc85fbb 100644 --- a/pkg/madmin/user-commands.go +++ b/pkg/madmin/user-commands.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/madmin/utils.go b/pkg/madmin/utils.go index 4f992e2b2..463490ea4 100644 --- a/pkg/madmin/utils.go +++ b/pkg/madmin/utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package madmin diff --git a/pkg/mimedb/db.go b/pkg/mimedb/db.go index 534fbf2f0..e7ea19fa5 100644 --- a/pkg/mimedb/db.go +++ b/pkg/mimedb/db.go @@ -1,19 +1,19 @@ -// DO NOT EDIT THIS FILE. IT IS AUTO-GENERATED BY "gen-db.go". // -/* - * mimedb: Mime Database, (C) 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package mimedb is a database of file extension to mime content-type. // Definitions are imported from NodeJS mime-db project under MIT license. diff --git a/pkg/mimedb/db_test.go b/pkg/mimedb/db_test.go index 8766c31df..95d12c135 100644 --- a/pkg/mimedb/db_test.go +++ b/pkg/mimedb/db_test.go @@ -1,18 +1,19 @@ -/* - * mime-db: Mime Database, (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package mimedb diff --git a/pkg/mimedb/resolve-db.go b/pkg/mimedb/resolve-db.go index 058b9a9ef..40b6a736e 100644 --- a/pkg/mimedb/resolve-db.go +++ b/pkg/mimedb/resolve-db.go @@ -1,18 +1,19 @@ -/* - * mime-db: Mime Database, (C) 2015, 2016, 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package mimedb diff --git a/pkg/mimedb/util/gen-db.go b/pkg/mimedb/util/gen-db.go index c0848f969..99741b822 100644 --- a/pkg/mimedb/util/gen-db.go +++ b/pkg/mimedb/util/gen-db.go @@ -1,18 +1,19 @@ -/* - * mimedb: Mime Database, (C) 2015 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package mimedb is a database of file extension to mime content-type. // Definitions are imported from NodeJS mime-db project under MIT license. diff --git a/pkg/mountinfo/mountinfo.go b/pkg/mountinfo/mountinfo.go index 1156a3d2c..b062d1e31 100644 --- a/pkg/mountinfo/mountinfo.go +++ b/pkg/mountinfo/mountinfo.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package mountinfo diff --git a/pkg/mountinfo/mountinfo_linux.go b/pkg/mountinfo/mountinfo_linux.go index ea482e8d8..803f6b074 100644 --- a/pkg/mountinfo/mountinfo_linux.go +++ b/pkg/mountinfo/mountinfo_linux.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package mountinfo diff --git a/pkg/mountinfo/mountinfo_linux_test.go b/pkg/mountinfo/mountinfo_linux_test.go index 9d7794658..eb6457ef7 100644 --- a/pkg/mountinfo/mountinfo_linux_test.go +++ b/pkg/mountinfo/mountinfo_linux_test.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package mountinfo diff --git a/pkg/mountinfo/mountinfo_others.go b/pkg/mountinfo/mountinfo_others.go index 9f25e8829..0ada5d3cc 100644 --- a/pkg/mountinfo/mountinfo_others.go +++ b/pkg/mountinfo/mountinfo_others.go @@ -1,20 +1,21 @@ // +build !linux,!windows -/* - * MinIO Cloud Storage, (C) 2017, 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package mountinfo diff --git a/pkg/mountinfo/mountinfo_windows.go b/pkg/mountinfo/mountinfo_windows.go index dc8ef340b..7b27f824d 100644 --- a/pkg/mountinfo/mountinfo_windows.go +++ b/pkg/mountinfo/mountinfo_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package mountinfo diff --git a/pkg/net/health.go b/pkg/net/health.go index 687f24736..864377dfe 100644 --- a/pkg/net/health.go +++ b/pkg/net/health.go @@ -1,19 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package net diff --git a/pkg/net/host.go b/pkg/net/host.go index d20568fe8..2ee3c8d20 100644 --- a/pkg/net/host.go +++ b/pkg/net/host.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package net diff --git a/pkg/net/host_test.go b/pkg/net/host_test.go index 57e786c9f..f849890d0 100644 --- a/pkg/net/host_test.go +++ b/pkg/net/host_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package net diff --git a/pkg/net/port.go b/pkg/net/port.go index db7319706..75fefb369 100644 --- a/pkg/net/port.go +++ b/pkg/net/port.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package net diff --git a/pkg/net/port_test.go b/pkg/net/port_test.go index db04e9e0d..7c7eea523 100644 --- a/pkg/net/port_test.go +++ b/pkg/net/port_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package net diff --git a/pkg/net/url.go b/pkg/net/url.go index c52261245..ce6646b2a 100644 --- a/pkg/net/url.go +++ b/pkg/net/url.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package net diff --git a/pkg/net/url_test.go b/pkg/net/url_test.go index 5d9973bf4..5ce70fb49 100644 --- a/pkg/net/url_test.go +++ b/pkg/net/url_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2018 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package net diff --git a/pkg/pubsub/pubsub.go b/pkg/pubsub/pubsub.go index fe6cf6e86..ca3821877 100644 --- a/pkg/pubsub/pubsub.go +++ b/pkg/pubsub/pubsub.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package pubsub diff --git a/pkg/pubsub/pubsub_test.go b/pkg/pubsub/pubsub_test.go index f30a71a28..457d910a9 100644 --- a/pkg/pubsub/pubsub_test.go +++ b/pkg/pubsub/pubsub_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package pubsub diff --git a/pkg/quick/encoding.go b/pkg/quick/encoding.go index 98d8fa79a..466af274d 100644 --- a/pkg/quick/encoding.go +++ b/pkg/quick/encoding.go @@ -1,20 +1,19 @@ -/* - * Quick - Quick key value store for config files and persistent state files - * - * Quick (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package quick diff --git a/pkg/quick/errorutil.go b/pkg/quick/errorutil.go index 33bc82c41..e56c1dfd5 100644 --- a/pkg/quick/errorutil.go +++ b/pkg/quick/errorutil.go @@ -1,20 +1,19 @@ -/* - * Quick - Quick key value store for config files and persistent state files - * - * Quick (C) 2015 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package quick diff --git a/pkg/quick/quick.go b/pkg/quick/quick.go index 2c84735c7..64d4bf97a 100644 --- a/pkg/quick/quick.go +++ b/pkg/quick/quick.go @@ -1,20 +1,19 @@ -/* - * Quick - Quick key value store for config files and persistent state files - * - * Quick (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package quick diff --git a/pkg/quick/quick_test.go b/pkg/quick/quick_test.go index 92844a5eb..857862670 100644 --- a/pkg/quick/quick_test.go +++ b/pkg/quick/quick_test.go @@ -1,20 +1,19 @@ -/* - * Quick - Quick key value store for config files and persistent state files - * - * Quick (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package quick diff --git a/pkg/rpc/LICENSE b/pkg/rpc/LICENSE index d64569567..be3f7b28e 100644 --- a/pkg/rpc/LICENSE +++ b/pkg/rpc/LICENSE @@ -1,202 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + Preamble - 1. Definitions. + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + The precise terms and conditions for copying, distribution and +modification follow. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + TERMS AND CONDITIONS - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + 0. Definitions. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "This License" refers to version 3 of the GNU Affero General Public License. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + A "covered work" means either the unmodified Program or a work based +on the Program. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + 1. Source Code. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. - END OF TERMS AND CONDITIONS + The Corresponding Source for a work in source code form is that +same work. - APPENDIX: How to apply the Apache License to your work. + 2. Basic Permissions. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. - Copyright [yyyy] [name of copyright owner] + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. - http://www.apache.org/licenses/LICENSE-2.0 + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/pkg/rpc/compression_selector.go b/pkg/rpc/compression_selector.go index 3c90bd753..35f716e0c 100644 --- a/pkg/rpc/compression_selector.go +++ b/pkg/rpc/compression_selector.go @@ -3,10 +3,13 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE.ORIG file. // -// Copyright 2020 MinIO, Inc. All rights reserved. + +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. + package rpc import ( diff --git a/pkg/rpc/doc.go b/pkg/rpc/doc.go index f9a85134c..c9a1fc6c8 100644 --- a/pkg/rpc/doc.go +++ b/pkg/rpc/doc.go @@ -3,13 +3,14 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. /* -Package gorilla/rpc is a foundation for RPC over HTTP services, providing +Package rpc is a foundation for RPC over HTTP services, providing access to the exported methods of an object through HTTP requests. This package derives from the standard net/rpc package but uses a single HTTP diff --git a/pkg/rpc/encoder_selector.go b/pkg/rpc/encoder_selector.go index f7eb30728..2a8739168 100644 --- a/pkg/rpc/encoder_selector.go +++ b/pkg/rpc/encoder_selector.go @@ -5,8 +5,9 @@ // Copyright 2020 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package rpc diff --git a/pkg/rpc/json2/client.go b/pkg/rpc/json2/client.go index 6070615c6..e89dca478 100644 --- a/pkg/rpc/json2/client.go +++ b/pkg/rpc/json2/client.go @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package json2 diff --git a/pkg/rpc/json2/error.go b/pkg/rpc/json2/error.go index 127689f74..41bb32811 100644 --- a/pkg/rpc/json2/error.go +++ b/pkg/rpc/json2/error.go @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package json2 diff --git a/pkg/rpc/json2/json_test.go b/pkg/rpc/json2/json_test.go index df44a8e2f..1968336ec 100644 --- a/pkg/rpc/json2/json_test.go +++ b/pkg/rpc/json2/json_test.go @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package json2 diff --git a/pkg/rpc/json2/server.go b/pkg/rpc/json2/server.go index a224f3cfd..a8acec6c5 100644 --- a/pkg/rpc/json2/server.go +++ b/pkg/rpc/json2/server.go @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package json2 diff --git a/pkg/rpc/map.go b/pkg/rpc/map.go index 7cd252cda..c5995ece1 100644 --- a/pkg/rpc/map.go +++ b/pkg/rpc/map.go @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package rpc diff --git a/pkg/rpc/server.go b/pkg/rpc/server.go index ab5231516..f5b8074ab 100644 --- a/pkg/rpc/server.go +++ b/pkg/rpc/server.go @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package rpc diff --git a/pkg/rpc/server_test.go b/pkg/rpc/server_test.go index dfc2c196c..a50d60651 100644 --- a/pkg/rpc/server_test.go +++ b/pkg/rpc/server_test.go @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Copyright 2020 MinIO, Inc. All rights reserved. +// Copyright 2021 MinIO, Inc. All rights reserved. // forked from https://github.com/gorilla/rpc/v2 -// modified to be used with MinIO under Apache -// 2.0 license that can be found in the LICENSE file. +// modified to be used with MinIO under GNU Affero General +// Public License 3.0 license that can be found in +// the LICENSE file. package rpc diff --git a/pkg/s3select/csv/args.go b/pkg/s3select/csv/args.go index 0b60a03fd..ae126f2cf 100644 --- a/pkg/s3select/csv/args.go +++ b/pkg/s3select/csv/args.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package csv diff --git a/pkg/s3select/csv/errors.go b/pkg/s3select/csv/errors.go index eba0cbe1f..391c1ac44 100644 --- a/pkg/s3select/csv/errors.go +++ b/pkg/s3select/csv/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package csv diff --git a/pkg/s3select/csv/reader.go b/pkg/s3select/csv/reader.go index 12bedfdf2..78a0da233 100644 --- a/pkg/s3select/csv/reader.go +++ b/pkg/s3select/csv/reader.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package csv diff --git a/pkg/s3select/csv/reader_test.go b/pkg/s3select/csv/reader_test.go index 71ae78132..84313ede9 100644 --- a/pkg/s3select/csv/reader_test.go +++ b/pkg/s3select/csv/reader_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package csv diff --git a/pkg/s3select/csv/record.go b/pkg/s3select/csv/record.go index c9f0f842b..bf7e4a498 100644 --- a/pkg/s3select/csv/record.go +++ b/pkg/s3select/csv/record.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package csv diff --git a/pkg/s3select/csv/recordtransform.go b/pkg/s3select/csv/recordtransform.go index 18b5ea48f..a3c22d750 100644 --- a/pkg/s3select/csv/recordtransform.go +++ b/pkg/s3select/csv/recordtransform.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package csv diff --git a/pkg/s3select/errors.go b/pkg/s3select/errors.go index feb1d17cc..1234adc84 100644 --- a/pkg/s3select/errors.go +++ b/pkg/s3select/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/s3select/genmessage.go b/pkg/s3select/genmessage.go index 4b3ead331..a1c53d56e 100644 --- a/pkg/s3select/genmessage.go +++ b/pkg/s3select/genmessage.go @@ -1,20 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/s3select/internal/parquet-go/column.go b/pkg/s3select/internal/parquet-go/column.go index 3ed3c1e8d..5e8f8db2f 100644 --- a/pkg/s3select/internal/parquet-go/column.go +++ b/pkg/s3select/internal/parquet-go/column.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/common.go b/pkg/s3select/internal/parquet-go/common.go index e1d825bb7..947a2eb8d 100644 --- a/pkg/s3select/internal/parquet-go/common.go +++ b/pkg/s3select/internal/parquet-go/common.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/common/common.go b/pkg/s3select/internal/parquet-go/common/common.go index 8df338f0f..3c3dbd1cc 100644 --- a/pkg/s3select/internal/parquet-go/common/common.go +++ b/pkg/s3select/internal/parquet-go/common/common.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package common import ( diff --git a/pkg/s3select/internal/parquet-go/compression.go b/pkg/s3select/internal/parquet-go/compression.go index f9a1e5e52..23939139e 100644 --- a/pkg/s3select/internal/parquet-go/compression.go +++ b/pkg/s3select/internal/parquet-go/compression.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/data/column-grouplist_test.go b/pkg/s3select/internal/parquet-go/data/column-grouplist_test.go index cda76013a..f1d88ad15 100644 --- a/pkg/s3select/internal/parquet-go/data/column-grouplist_test.go +++ b/pkg/s3select/internal/parquet-go/data/column-grouplist_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/column-grouptype_test.go b/pkg/s3select/internal/parquet-go/data/column-grouptype_test.go index b1f957382..9b5af52f3 100644 --- a/pkg/s3select/internal/parquet-go/data/column-grouptype_test.go +++ b/pkg/s3select/internal/parquet-go/data/column-grouptype_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/column-listoflist_test.go b/pkg/s3select/internal/parquet-go/data/column-listoflist_test.go index f990f8969..e279c3d66 100644 --- a/pkg/s3select/internal/parquet-go/data/column-listoflist_test.go +++ b/pkg/s3select/internal/parquet-go/data/column-listoflist_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/column-map_test.go b/pkg/s3select/internal/parquet-go/data/column-map_test.go index 30be01c8c..9d9dbfbc7 100644 --- a/pkg/s3select/internal/parquet-go/data/column-map_test.go +++ b/pkg/s3select/internal/parquet-go/data/column-map_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/column-primitivelist_test.go b/pkg/s3select/internal/parquet-go/data/column-primitivelist_test.go index 3fb7b0c98..a7e320535 100644 --- a/pkg/s3select/internal/parquet-go/data/column-primitivelist_test.go +++ b/pkg/s3select/internal/parquet-go/data/column-primitivelist_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/column-primitivetype_test.go b/pkg/s3select/internal/parquet-go/data/column-primitivetype_test.go index d66829980..75a97802a 100644 --- a/pkg/s3select/internal/parquet-go/data/column-primitivetype_test.go +++ b/pkg/s3select/internal/parquet-go/data/column-primitivetype_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/column.go b/pkg/s3select/internal/parquet-go/data/column.go index 530417598..e302c7cf2 100644 --- a/pkg/s3select/internal/parquet-go/data/column.go +++ b/pkg/s3select/internal/parquet-go/data/column.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/column_test.go b/pkg/s3select/internal/parquet-go/data/column_test.go index a8d35d886..0628cac98 100644 --- a/pkg/s3select/internal/parquet-go/data/column_test.go +++ b/pkg/s3select/internal/parquet-go/data/column_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/data.go b/pkg/s3select/internal/parquet-go/data/data.go index 9d9245a45..8e7ef91f1 100644 --- a/pkg/s3select/internal/parquet-go/data/data.go +++ b/pkg/s3select/internal/parquet-go/data/data.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/jsonvalue.go b/pkg/s3select/internal/parquet-go/data/jsonvalue.go index bd3c6a179..448a05afd 100644 --- a/pkg/s3select/internal/parquet-go/data/jsonvalue.go +++ b/pkg/s3select/internal/parquet-go/data/jsonvalue.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/data/result.go b/pkg/s3select/internal/parquet-go/data/result.go index 2385b9bcf..3cdab35af 100644 --- a/pkg/s3select/internal/parquet-go/data/result.go +++ b/pkg/s3select/internal/parquet-go/data/result.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package data diff --git a/pkg/s3select/internal/parquet-go/decode.go b/pkg/s3select/internal/parquet-go/decode.go index 9fec6f802..f55aa6df2 100644 --- a/pkg/s3select/internal/parquet-go/decode.go +++ b/pkg/s3select/internal/parquet-go/decode.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/encode.go b/pkg/s3select/internal/parquet-go/encode.go index b165a2bd9..0c7427a42 100644 --- a/pkg/s3select/internal/parquet-go/encode.go +++ b/pkg/s3select/internal/parquet-go/encode.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/encode_test.go b/pkg/s3select/internal/parquet-go/encode_test.go index 8379c190c..6f10af6f6 100644 --- a/pkg/s3select/internal/parquet-go/encode_test.go +++ b/pkg/s3select/internal/parquet-go/encode_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/encoding/common.go b/pkg/s3select/internal/parquet-go/encoding/common.go index f26619fa6..6ce01a838 100644 --- a/pkg/s3select/internal/parquet-go/encoding/common.go +++ b/pkg/s3select/internal/parquet-go/encoding/common.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/encoding/common_test.go b/pkg/s3select/internal/parquet-go/encoding/common_test.go index f37bc7b35..715636756 100644 --- a/pkg/s3select/internal/parquet-go/encoding/common_test.go +++ b/pkg/s3select/internal/parquet-go/encoding/common_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/encoding/delta-encode.go b/pkg/s3select/internal/parquet-go/encoding/delta-encode.go index 3d14318f8..df3106ae8 100644 --- a/pkg/s3select/internal/parquet-go/encoding/delta-encode.go +++ b/pkg/s3select/internal/parquet-go/encoding/delta-encode.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/encoding/plain-encode.go b/pkg/s3select/internal/parquet-go/encoding/plain-encode.go index babeb47e7..028d53a09 100644 --- a/pkg/s3select/internal/parquet-go/encoding/plain-encode.go +++ b/pkg/s3select/internal/parquet-go/encoding/plain-encode.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/encoding/plain-encode_test.go b/pkg/s3select/internal/parquet-go/encoding/plain-encode_test.go index f7c63b298..336a54dd5 100644 --- a/pkg/s3select/internal/parquet-go/encoding/plain-encode_test.go +++ b/pkg/s3select/internal/parquet-go/encoding/plain-encode_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/encoding/rle-encode.go b/pkg/s3select/internal/parquet-go/encoding/rle-encode.go index 518e11d1b..609fbd1b7 100644 --- a/pkg/s3select/internal/parquet-go/encoding/rle-encode.go +++ b/pkg/s3select/internal/parquet-go/encoding/rle-encode.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/encoding/rle-encode_test.go b/pkg/s3select/internal/parquet-go/encoding/rle-encode_test.go index e0773c866..b87b9f951 100644 --- a/pkg/s3select/internal/parquet-go/encoding/rle-encode_test.go +++ b/pkg/s3select/internal/parquet-go/encoding/rle-encode_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/encoding/rledict-encode.go b/pkg/s3select/internal/parquet-go/encoding/rledict-encode.go index 3ed799ae4..30cd0ab72 100644 --- a/pkg/s3select/internal/parquet-go/encoding/rledict-encode.go +++ b/pkg/s3select/internal/parquet-go/encoding/rledict-encode.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package encoding diff --git a/pkg/s3select/internal/parquet-go/endian.go b/pkg/s3select/internal/parquet-go/endian.go index 9506fb0d2..8f02c537b 100644 --- a/pkg/s3select/internal/parquet-go/endian.go +++ b/pkg/s3select/internal/parquet-go/endian.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/gen-go/parquet/GoUnusedProtection__.go b/pkg/s3select/internal/parquet-go/gen-go/parquet/GoUnusedProtection__.go index 7323152d4..ac735f76a 100644 --- a/pkg/s3select/internal/parquet-go/gen-go/parquet/GoUnusedProtection__.go +++ b/pkg/s3select/internal/parquet-go/gen-go/parquet/GoUnusedProtection__.go @@ -1,5 +1,19 @@ -// Autogenerated by Thrift Compiler (0.10.0) -// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet-consts.go b/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet-consts.go index 9177df914..89f3025fa 100644 --- a/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet-consts.go +++ b/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet-consts.go @@ -1,5 +1,19 @@ -// Autogenerated by Thrift Compiler (0.10.0) -// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet.go b/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet.go index d3f90e105..bb456f3f4 100644 --- a/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet.go +++ b/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet.go @@ -1,5 +1,19 @@ -// Autogenerated by Thrift Compiler (0.10.0) -// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/page.go b/pkg/s3select/internal/parquet-go/page.go index 22f89fe80..cd02bd9ee 100644 --- a/pkg/s3select/internal/parquet-go/page.go +++ b/pkg/s3select/internal/parquet-go/page.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/reader.go b/pkg/s3select/internal/parquet-go/reader.go index c757503d3..bde4824a9 100644 --- a/pkg/s3select/internal/parquet-go/reader.go +++ b/pkg/s3select/internal/parquet-go/reader.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/reader_test.go b/pkg/s3select/internal/parquet-go/reader_test.go index c3886ade8..f3359b05b 100644 --- a/pkg/s3select/internal/parquet-go/reader_test.go +++ b/pkg/s3select/internal/parquet-go/reader_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/record.go b/pkg/s3select/internal/parquet-go/record.go index 6d25632f3..b826165e6 100644 --- a/pkg/s3select/internal/parquet-go/record.go +++ b/pkg/s3select/internal/parquet-go/record.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/schema/element.go b/pkg/s3select/internal/parquet-go/schema/element.go index df191f48b..09f61b8ff 100644 --- a/pkg/s3select/internal/parquet-go/schema/element.go +++ b/pkg/s3select/internal/parquet-go/schema/element.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package schema diff --git a/pkg/s3select/internal/parquet-go/schema/tree.go b/pkg/s3select/internal/parquet-go/schema/tree.go index 6fb3e52a5..bdf2ca325 100644 --- a/pkg/s3select/internal/parquet-go/schema/tree.go +++ b/pkg/s3select/internal/parquet-go/schema/tree.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package schema diff --git a/pkg/s3select/internal/parquet-go/schema/tree_test.go b/pkg/s3select/internal/parquet-go/schema/tree_test.go index ede461156..78279f470 100644 --- a/pkg/s3select/internal/parquet-go/schema/tree_test.go +++ b/pkg/s3select/internal/parquet-go/schema/tree_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package schema diff --git a/pkg/s3select/internal/parquet-go/table.go b/pkg/s3select/internal/parquet-go/table.go index 52158aa50..60fa1c059 100644 --- a/pkg/s3select/internal/parquet-go/table.go +++ b/pkg/s3select/internal/parquet-go/table.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/tools/parquet2csv/parquet2csv.go b/pkg/s3select/internal/parquet-go/tools/parquet2csv/parquet2csv.go index 771e2dec5..c10100f94 100644 --- a/pkg/s3select/internal/parquet-go/tools/parquet2csv/parquet2csv.go +++ b/pkg/s3select/internal/parquet-go/tools/parquet2csv/parquet2csv.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/s3select/internal/parquet-go/tools/parquet2json/parquet2json.go b/pkg/s3select/internal/parquet-go/tools/parquet2json/parquet2json.go index ef99614c6..1d1de6d27 100644 --- a/pkg/s3select/internal/parquet-go/tools/parquet2json/parquet2json.go +++ b/pkg/s3select/internal/parquet-go/tools/parquet2json/parquet2json.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2018 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package main diff --git a/pkg/s3select/internal/parquet-go/writer.go b/pkg/s3select/internal/parquet-go/writer.go index 7d1fbdd4b..b0b0a0c8e 100644 --- a/pkg/s3select/internal/parquet-go/writer.go +++ b/pkg/s3select/internal/parquet-go/writer.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/internal/parquet-go/writer_test.go b/pkg/s3select/internal/parquet-go/writer_test.go index 7bc4d9f36..557f7240b 100644 --- a/pkg/s3select/internal/parquet-go/writer_test.go +++ b/pkg/s3select/internal/parquet-go/writer_test.go @@ -1,18 +1,19 @@ -/* - * Minio Cloud Storage, (C) 2019 Minio, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/json/args.go b/pkg/s3select/json/args.go index 729e9bc7d..7fce9ebed 100644 --- a/pkg/s3select/json/args.go +++ b/pkg/s3select/json/args.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package json diff --git a/pkg/s3select/json/errors.go b/pkg/s3select/json/errors.go index ef0d59822..f1efa64b2 100644 --- a/pkg/s3select/json/errors.go +++ b/pkg/s3select/json/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package json diff --git a/pkg/s3select/json/preader.go b/pkg/s3select/json/preader.go index bb7798004..fb2808869 100644 --- a/pkg/s3select/json/preader.go +++ b/pkg/s3select/json/preader.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package json diff --git a/pkg/s3select/json/preader_test.go b/pkg/s3select/json/preader_test.go index 7d345e6ea..a8e321798 100644 --- a/pkg/s3select/json/preader_test.go +++ b/pkg/s3select/json/preader_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package json diff --git a/pkg/s3select/json/reader.go b/pkg/s3select/json/reader.go index cd672db7d..8f7dab1b2 100644 --- a/pkg/s3select/json/reader.go +++ b/pkg/s3select/json/reader.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package json diff --git a/pkg/s3select/json/reader_test.go b/pkg/s3select/json/reader_test.go index c8970a91b..8cdd06f8d 100644 --- a/pkg/s3select/json/reader_test.go +++ b/pkg/s3select/json/reader_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package json diff --git a/pkg/s3select/json/record.go b/pkg/s3select/json/record.go index d599466fd..7e19cada6 100644 --- a/pkg/s3select/json/record.go +++ b/pkg/s3select/json/record.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package json diff --git a/pkg/s3select/message.go b/pkg/s3select/message.go index 1733e905d..efad61985 100644 --- a/pkg/s3select/message.go +++ b/pkg/s3select/message.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/s3select/parquet/args.go b/pkg/s3select/parquet/args.go index 8fd7c0c7a..6d593e815 100644 --- a/pkg/s3select/parquet/args.go +++ b/pkg/s3select/parquet/args.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/parquet/errors.go b/pkg/s3select/parquet/errors.go index 69365e9d4..6bd22d997 100644 --- a/pkg/s3select/parquet/errors.go +++ b/pkg/s3select/parquet/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/parquet/reader.go b/pkg/s3select/parquet/reader.go index bc9557273..5d2121e83 100644 --- a/pkg/s3select/parquet/reader.go +++ b/pkg/s3select/parquet/reader.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package parquet diff --git a/pkg/s3select/progress.go b/pkg/s3select/progress.go index 8edf873cd..3383ebbc2 100644 --- a/pkg/s3select/progress.go +++ b/pkg/s3select/progress.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/s3select/select.go b/pkg/s3select/select.go index 326547962..f68c86b4c 100644 --- a/pkg/s3select/select.go +++ b/pkg/s3select/select.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019-2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/s3select/select_benchmark_test.go b/pkg/s3select/select_benchmark_test.go index c3bdd338d..15aac02cb 100644 --- a/pkg/s3select/select_benchmark_test.go +++ b/pkg/s3select/select_benchmark_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/s3select/select_test.go b/pkg/s3select/select_test.go index cf784dc36..27bed4259 100644 --- a/pkg/s3select/select_test.go +++ b/pkg/s3select/select_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/s3select/simdj/errors.go b/pkg/s3select/simdj/errors.go index 3b6106d13..89ef313d3 100644 --- a/pkg/s3select/simdj/errors.go +++ b/pkg/s3select/simdj/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package simdj diff --git a/pkg/s3select/simdj/reader.go b/pkg/s3select/simdj/reader.go index 8870ab952..fcf1ad5b2 100644 --- a/pkg/s3select/simdj/reader.go +++ b/pkg/s3select/simdj/reader.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package simdj diff --git a/pkg/s3select/simdj/reader_amd64_test.go b/pkg/s3select/simdj/reader_amd64_test.go index cb443221a..892e09bda 100644 --- a/pkg/s3select/simdj/reader_amd64_test.go +++ b/pkg/s3select/simdj/reader_amd64_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package simdj diff --git a/pkg/s3select/simdj/record.go b/pkg/s3select/simdj/record.go index 83139a6b2..b4254a3ae 100644 --- a/pkg/s3select/simdj/record.go +++ b/pkg/s3select/simdj/record.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package simdj diff --git a/pkg/s3select/sql/aggregation.go b/pkg/s3select/sql/aggregation.go index 5baf2429b..c2a821d7a 100644 --- a/pkg/s3select/sql/aggregation.go +++ b/pkg/s3select/sql/aggregation.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/analysis.go b/pkg/s3select/sql/analysis.go index eab71b141..877a11f59 100644 --- a/pkg/s3select/sql/analysis.go +++ b/pkg/s3select/sql/analysis.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/errors.go b/pkg/s3select/sql/errors.go index f5874721c..195cf3703 100644 --- a/pkg/s3select/sql/errors.go +++ b/pkg/s3select/sql/errors.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/evaluate.go b/pkg/s3select/sql/evaluate.go index 83bdf0ffb..1ebef61d8 100644 --- a/pkg/s3select/sql/evaluate.go +++ b/pkg/s3select/sql/evaluate.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/funceval.go b/pkg/s3select/sql/funceval.go index 1ceaea9dd..797e9c387 100644 --- a/pkg/s3select/sql/funceval.go +++ b/pkg/s3select/sql/funceval.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/jsonpath.go b/pkg/s3select/sql/jsonpath.go index 200b2d204..d3b53298f 100644 --- a/pkg/s3select/sql/jsonpath.go +++ b/pkg/s3select/sql/jsonpath.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/jsonpath_test.go b/pkg/s3select/sql/jsonpath_test.go index 53fcd136c..7afd04f23 100644 --- a/pkg/s3select/sql/jsonpath_test.go +++ b/pkg/s3select/sql/jsonpath_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/parser.go b/pkg/s3select/sql/parser.go index a8d4f94ea..67950fdbf 100644 --- a/pkg/s3select/sql/parser.go +++ b/pkg/s3select/sql/parser.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/parser_test.go b/pkg/s3select/sql/parser_test.go index 6046d5a41..bc402553c 100644 --- a/pkg/s3select/sql/parser_test.go +++ b/pkg/s3select/sql/parser_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/record.go b/pkg/s3select/sql/record.go index ced507067..925b6e95e 100644 --- a/pkg/s3select/sql/record.go +++ b/pkg/s3select/sql/record.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/statement.go b/pkg/s3select/sql/statement.go index 2d3d49e3a..6ed7df385 100644 --- a/pkg/s3select/sql/statement.go +++ b/pkg/s3select/sql/statement.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/stringfuncs.go b/pkg/s3select/sql/stringfuncs.go index b1a23956b..b6d24f5e8 100644 --- a/pkg/s3select/sql/stringfuncs.go +++ b/pkg/s3select/sql/stringfuncs.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/stringfuncs_test.go b/pkg/s3select/sql/stringfuncs_test.go index 242c2283d..c0aec4d0d 100644 --- a/pkg/s3select/sql/stringfuncs_test.go +++ b/pkg/s3select/sql/stringfuncs_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/timestampfuncs.go b/pkg/s3select/sql/timestampfuncs.go index df037a1ca..006f1dd5a 100644 --- a/pkg/s3select/sql/timestampfuncs.go +++ b/pkg/s3select/sql/timestampfuncs.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/timestampfuncs_test.go b/pkg/s3select/sql/timestampfuncs_test.go index d529e048c..5af3b568f 100644 --- a/pkg/s3select/sql/timestampfuncs_test.go +++ b/pkg/s3select/sql/timestampfuncs_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/utils.go b/pkg/s3select/sql/utils.go index 469e91c48..4d6938475 100644 --- a/pkg/s3select/sql/utils.go +++ b/pkg/s3select/sql/utils.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/value.go b/pkg/s3select/sql/value.go index c49f46012..09b20cb44 100644 --- a/pkg/s3select/sql/value.go +++ b/pkg/s3select/sql/value.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/sql/value_test.go b/pkg/s3select/sql/value_test.go index 2e08e543f..ec2a513f7 100644 --- a/pkg/s3select/sql/value_test.go +++ b/pkg/s3select/sql/value_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sql diff --git a/pkg/s3select/unused-errors.go b/pkg/s3select/unused-errors.go index a4cade841..33545e353 100644 --- a/pkg/s3select/unused-errors.go +++ b/pkg/s3select/unused-errors.go @@ -1,20 +1,21 @@ // +build ignore -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package s3select diff --git a/pkg/safe/safe.go b/pkg/safe/safe.go index 1e3ef460a..79c605081 100644 --- a/pkg/safe/safe.go +++ b/pkg/safe/safe.go @@ -1,20 +1,19 @@ -/* - * MinIO Cloud Storage (C) 2015-2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// NOTE - Rename() not guaranteed to be safe on all filesystems which are not fully POSIX compatible +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package safe diff --git a/pkg/safe/safe_test.go b/pkg/safe/safe_test.go index 8dd7c6614..83345caf2 100644 --- a/pkg/safe/safe_test.go +++ b/pkg/safe/safe_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Client (C) 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package safe diff --git a/pkg/smart/bindata.go b/pkg/smart/bindata.go index 12774b115..a3d9df305 100644 --- a/pkg/smart/bindata.go +++ b/pkg/smart/bindata.go @@ -1,3 +1,20 @@ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Code generated by go-bindata. // sources: // drivedb.yaml diff --git a/pkg/smart/nvme.go b/pkg/smart/nvme.go index 0f7d501cc..7370070d8 100644 --- a/pkg/smart/nvme.go +++ b/pkg/smart/nvme.go @@ -1,26 +1,26 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . -/* - * This file has been adopted and then modified from Daniel Swarbrick's smart - * project residing at https://github.com/dswarbrick/smart - * - */ +// +// This file has been adopted and then modified from Daniel Swarbrick's smart +// project residing at https://github.com/dswarbrick/smart +// package smart diff --git a/pkg/smart/smart.go b/pkg/smart/smart.go index 2f23cbb71..99c80071f 100644 --- a/pkg/smart/smart.go +++ b/pkg/smart/smart.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package smart diff --git a/pkg/smart/types.go b/pkg/smart/types.go index 6a379f91e..9e950150a 100644 --- a/pkg/smart/types.go +++ b/pkg/smart/types.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package smart diff --git a/pkg/sync/errgroup/errgroup.go b/pkg/sync/errgroup/errgroup.go index 5950e3464..4004fbf58 100644 --- a/pkg/sync/errgroup/errgroup.go +++ b/pkg/sync/errgroup/errgroup.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package errgroup diff --git a/pkg/sync/errgroup/errgroup_test.go b/pkg/sync/errgroup/errgroup_test.go index 9816d985e..3de4bdd06 100644 --- a/pkg/sync/errgroup/errgroup_test.go +++ b/pkg/sync/errgroup/errgroup_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package errgroup diff --git a/pkg/sys/rlimit-file_bsd.go b/pkg/sys/rlimit-file_bsd.go index d30b365e4..5ece8436d 100644 --- a/pkg/sys/rlimit-file_bsd.go +++ b/pkg/sys/rlimit-file_bsd.go @@ -1,20 +1,21 @@ // +build freebsd dragonfly -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-file_nix.go b/pkg/sys/rlimit-file_nix.go index ac01be5f0..1ac5c3623 100644 --- a/pkg/sys/rlimit-file_nix.go +++ b/pkg/sys/rlimit-file_nix.go @@ -1,20 +1,21 @@ // +build linux darwin openbsd netbsd solaris -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-file_test.go b/pkg/sys/rlimit-file_test.go index 1e5646d8e..1d8145c1b 100644 --- a/pkg/sys/rlimit-file_test.go +++ b/pkg/sys/rlimit-file_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-file_windows.go b/pkg/sys/rlimit-file_windows.go index b78fc0a62..f9f621724 100644 --- a/pkg/sys/rlimit-file_windows.go +++ b/pkg/sys/rlimit-file_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-memory_bsd.go b/pkg/sys/rlimit-memory_bsd.go index bb56f7b20..a0b68675f 100644 --- a/pkg/sys/rlimit-memory_bsd.go +++ b/pkg/sys/rlimit-memory_bsd.go @@ -1,20 +1,21 @@ // +build freebsd dragonfly -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-memory_nix.go b/pkg/sys/rlimit-memory_nix.go index 85d0e2a5a..1a9398c86 100644 --- a/pkg/sys/rlimit-memory_nix.go +++ b/pkg/sys/rlimit-memory_nix.go @@ -1,20 +1,21 @@ // +build linux darwin netbsd solaris -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-memory_openbsd.go b/pkg/sys/rlimit-memory_openbsd.go index ced796fa5..89caf15f5 100644 --- a/pkg/sys/rlimit-memory_openbsd.go +++ b/pkg/sys/rlimit-memory_openbsd.go @@ -1,20 +1,21 @@ // +build openbsd -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-memory_test.go b/pkg/sys/rlimit-memory_test.go index 4836f5616..9e2c1efe8 100644 --- a/pkg/sys/rlimit-memory_test.go +++ b/pkg/sys/rlimit-memory_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/rlimit-memory_windows.go b/pkg/sys/rlimit-memory_windows.go index b831737c6..d93375b5b 100644 --- a/pkg/sys/rlimit-memory_windows.go +++ b/pkg/sys/rlimit-memory_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats.go b/pkg/sys/stats.go index 541015e1a..32748dc34 100644 --- a/pkg/sys/stats.go +++ b/pkg/sys/stats.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_bsd.go b/pkg/sys/stats_bsd.go index 3fa78d161..ca527feb7 100644 --- a/pkg/sys/stats_bsd.go +++ b/pkg/sys/stats_bsd.go @@ -1,20 +1,21 @@ // +build openbsd freebsd dragonfly -/* - * MinIO Cloud Storage, (C) 2016,2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_darwin.go b/pkg/sys/stats_darwin.go index 681b14b5b..0ac4df0b7 100644 --- a/pkg/sys/stats_darwin.go +++ b/pkg/sys/stats_darwin.go @@ -1,20 +1,21 @@ // +build darwin -/* - * MinIO Cloud Storage, (C) 2016-2021 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_linux.go b/pkg/sys/stats_linux.go index f88f6f619..a1b380d55 100644 --- a/pkg/sys/stats_linux.go +++ b/pkg/sys/stats_linux.go @@ -1,20 +1,21 @@ // +build linux,!arm,!386 -/* - * MinIO Cloud Storage, (C) 2016,2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_linux_32bit.go b/pkg/sys/stats_linux_32bit.go index f0707d7aa..627439b85 100644 --- a/pkg/sys/stats_linux_32bit.go +++ b/pkg/sys/stats_linux_32bit.go @@ -1,20 +1,21 @@ // +build linux,arm linux,386 -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_netbsd.go b/pkg/sys/stats_netbsd.go index 1ccf71e3a..e44ca4cb5 100644 --- a/pkg/sys/stats_netbsd.go +++ b/pkg/sys/stats_netbsd.go @@ -1,20 +1,21 @@ // +build netbsd -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_solaris.go b/pkg/sys/stats_solaris.go index fded56191..b8d4f622d 100644 --- a/pkg/sys/stats_solaris.go +++ b/pkg/sys/stats_solaris.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_test.go b/pkg/sys/stats_test.go index f9b2e4d45..f39db2b02 100644 --- a/pkg/sys/stats_test.go +++ b/pkg/sys/stats_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/stats_windows.go b/pkg/sys/stats_windows.go index e6ca73922..04646a1f6 100644 --- a/pkg/sys/stats_windows.go +++ b/pkg/sys/stats_windows.go @@ -1,20 +1,21 @@ // +build windows -/* - * MinIO Cloud Storage, (C) 2016,2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/threads.go b/pkg/sys/threads.go index 25cc5f6d3..3e83c01a1 100644 --- a/pkg/sys/threads.go +++ b/pkg/sys/threads.go @@ -1,20 +1,21 @@ // +build linux -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/sys/threads_other.go b/pkg/sys/threads_other.go index e0ee3883b..b1991e55b 100644 --- a/pkg/sys/threads_other.go +++ b/pkg/sys/threads_other.go @@ -1,20 +1,21 @@ // +build !linux -/* - * MinIO Cloud Storage, (C) 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package sys diff --git a/pkg/trace/trace.go b/pkg/trace/trace.go index ba3add6ba..97f39c21d 100644 --- a/pkg/trace/trace.go +++ b/pkg/trace/trace.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2019 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package trace diff --git a/pkg/trie/trie.go b/pkg/trie/trie.go index 5c63e4ec0..f661e68fc 100644 --- a/pkg/trie/trie.go +++ b/pkg/trie/trie.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2014, 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . // Package trie implements a simple trie tree for minio server/tools borrows // idea from - https://godoc.org/golang.org/x/text/internal/triegen. diff --git a/pkg/trie/trie_test.go b/pkg/trie/trie_test.go index 0c84328d7..566f4e36a 100644 --- a/pkg/trie/trie_test.go +++ b/pkg/trie/trie_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package trie diff --git a/pkg/wildcard/match.go b/pkg/wildcard/match.go index 358d21e04..78f20f5de 100644 --- a/pkg/wildcard/match.go +++ b/pkg/wildcard/match.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package wildcard diff --git a/pkg/wildcard/match_test.go b/pkg/wildcard/match_test.go index 5eb305c66..11348c34f 100644 --- a/pkg/wildcard/match_test.go +++ b/pkg/wildcard/match_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2015, 2016 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package wildcard_test diff --git a/pkg/words/damerau-levenshtein.go b/pkg/words/damerau-levenshtein.go index 4edf0c2b4..3fb814e13 100644 --- a/pkg/words/damerau-levenshtein.go +++ b/pkg/words/damerau-levenshtein.go @@ -1,18 +1,19 @@ -/* - * MinIO Client (C) 2014, 2015, 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package words diff --git a/pkg/words/damerau-levenshtein_test.go b/pkg/words/damerau-levenshtein_test.go index e072ce08a..7a35e4a45 100644 --- a/pkg/words/damerau-levenshtein_test.go +++ b/pkg/words/damerau-levenshtein_test.go @@ -1,18 +1,19 @@ -/* - * MinIO Cloud Storage, (C) 2016, 2017 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright (c) 2015-2021 MinIO, Inc. +// +// This file is part of MinIO Object Storage stack +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . package words

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 - -``` - -要启用版本控制,你可以发送一个Status为`Enabled`的版本控制配置请求到MinIO。 -``` - - Enabled - -``` - -同样的,要暂停版本控制,把Status配置设置为`Suspended`即可。 -``` - - Suspended - -``` - -只有具有相应的权限或者root用户才能配置任何存储桶的版本控制状态。 - -## 使用MinIO Java SDK启用存储通版本控制的示例 - -### EnableVersioning() API - -``` -import io.minio.EnableVersioningArgs; -import io.minio.MinioClient; -import io.minio.errors.MinioException; -import java.io.IOException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -public class EnableVersioning { - /** MinioClient.enableVersioning() example. */ - public static void main(String[] args) - throws IOException, NoSuchAlgorithmException, InvalidKeyException { - try { - /* play.min.io for test and development. */ - MinioClient minioClient = - MinioClient.builder() - .endpoint("https://play.min.io") - .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG") - .build(); - - /* Amazon S3: */ - // MinioClient minioClient = - // MinioClient.builder() - // .endpoint("https://s3.amazonaws.com") - // .credentials("YOUR-ACCESSKEY", "YOUR-SECRETACCESSKEY") - // .build(); - - // Enable versioning on 'my-bucketname'. - minioClient.enableVersioning(EnableVersioningArgs.builder().bucket("my-bucketname").build()); - - System.out.println("Bucket versioning is enabled successfully"); - - } catch (MinioException e) { - System.out.println("Error occurred: " + e); - } - } -} -``` - -### isVersioningEnabled() API - -``` -public class IsVersioningEnabled { - /** MinioClient.isVersioningEnabled() example. */ - public static void main(String[] args) - throws IOException, NoSuchAlgorithmException, InvalidKeyException { - try { - /* play.min.io for test and development. */ - MinioClient minioClient = - MinioClient.builder() - .endpoint("https://play.min.io") - .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG") - .build(); - - /* Amazon S3: */ - // MinioClient minioClient = - // MinioClient.builder() - // .endpoint("https://s3.amazonaws.com") - // .credentials("YOUR-ACCESSKEY", "YOUR-SECRETACCESSKEY") - // .build(); - - // Create bucket 'my-bucketname' if it doesn`t exist. - if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket("my-bucketname").build())) { - minioClient.makeBucket(MakeBucketArgs.builder().bucket("my-bucketname").build()); - System.out.println("my-bucketname is created successfully"); - } - - boolean isVersioningEnabled = - minioClient.isVersioningEnabled( - IsVersioningEnabledArgs.builder().bucket("my-bucketname").build()); - if (isVersioningEnabled) { - System.out.println("Bucket versioning is enabled"); - } else { - System.out.println("Bucket versioning is disabled"); - } - // Enable versioning on 'my-bucketname'. - minioClient.enableVersioning(EnableVersioningArgs.builder().bucket("my-bucketname").build()); - System.out.println("Bucket versioning is enabled successfully"); - - isVersioningEnabled = - minioClient.isVersioningEnabled( - IsVersioningEnabledArgs.builder().bucket("my-bucketname").build()); - if (isVersioningEnabled) { - System.out.println("Bucket versioning is enabled"); - } else { - System.out.println("Bucket versioning is disabled"); - } - - } catch (MinioException e) { - System.out.println("Error occurred: " + e); - } - } -} -``` - -## 进一步探索 -- [使用`minio-java` SDK](https://docs.minio.io/cn/java-client-quickstart-guide.html) -- [对象锁定指南](https://docs.minio.io/docs/minio-bucket-object-lock-guide.html) -- [MinIO管理指南](https://docs.min.io/docs/minio-admin-complete-guide.html) -- [MinIO官方文档](https://docs.min.io/cn/) diff --git a/docs/zh_CN/bucket/versioning/versioning_DELETE_versionEnabled.png b/docs/zh_CN/bucket/versioning/versioning_DELETE_versionEnabled.png deleted file mode 100644 index 18dde122d1f86ece0fd56d420667739c66df7789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147359 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