검색

2.15. 버킷 알림

download PDF

스토리지 관리자는 이러한 API를 사용하여 버킷 알림 메커니즘에 대한 구성 및 제어 인터페이스를 제공할 수 있습니다. API 주제는 특정 엔드포인트의 정의가 포함된 이름이 지정된 오브젝트입니다. 버킷 알림은 주제를 특정 버킷과 연결합니다. S3 버킷 작업 섹션에서는 버킷 알림에 대한 자세한 정보를 제공합니다.

참고

모든 주제 작업에서 매개변수는 URL로 인코딩되며 application/x-www-form-urlencoded 콘텐츠 유형을 사용하여 메시지 본문에 전송됩니다.

참고

주제 업데이트가 적용되려면 이미 주제와 연결된 버킷 알림을 다시 생성해야 합니다.

사전 요구 사항

  • Ceph Object Gateway에서 버킷 알림을 생성합니다.

2.15.1. 버킷 알림 개요

버킷 알림은 버킷에서 특정 이벤트가 발생할 때 Ceph Object Gateway에서 정보를 보내는 방법을 제공합니다. 버킷 알림은 HTTP, AMQP0.9.1 및 Kafka 끝점으로 보낼 수 있습니다. 특정 버킷 및 특정 주제의 이벤트에 대한 버킷 알림을 보내려면 알림 항목을 생성해야 합니다. 버킷 알림은 이벤트 유형의 서브 세트에서 또는 기본적으로 모든 이벤트 유형에 대해 생성할 수 있습니다. 버킷 알림은 키 접두사 또는 접미사, 키와 일치하는 정규식, 오브젝트에 연결된 메타데이터 속성 또는 오브젝트 태그를 기반으로 이벤트를 필터링할 수 있습니다. 버킷 알림에는 버킷 알림 메커니즘에 대한 구성 및 제어 인터페이스를 제공하는 REST API가 있습니다.

오브젝트가 영역에 동기화될 때 버킷 알림을 전송하면 외부 시스템에서 오브젝트 수준에서 영역 동기화 상태로 정보를 얻을 수 있습니다. 버킷 알림 이벤트 유형 s3:ObjectSynced:*s3:ObjectSynced:Created 에서는 버킷 알림 메커니즘을 통해 구성된 경우 오브젝트 동기화 시 동기화된 RGW에서 알림 이벤트를 보냅니다. 알림 이벤트가 전송되는 각 영역에서 주제와 알림 구성은 별도로 수행해야 합니다.

2.15.2. 영구 알림

영구 알림을 사용하면 Ceph Object Gateway에서 주제에 구성된 엔드포인트로 알림을 안정적으로 비동기적으로 제공할 수 있습니다. 끝점으로의 전달은 요청 중에 동기적으로 수행되므로 일반 알림도 신뢰할 수 있습니다. 영구 알림을 사용하면 엔드포인트가 다운되거나 작업 중에 네트워크 문제가 있는 경우에도 Ceph Object Gateway에서 알림 전송을 다시 시도합니다. 엔드포인트로 전달되지 않은 경우 알림을 다시 시도합니다. 알림은 알림 작업과 관련된 다른 모든 작업이 성공한 후에만 전송됩니다. 끝점이 장기간 다운되면 알림 큐가 채워지고 이러한 끝점에 대한 알림을 구성한 S3 작업이 실패합니다.

참고

kafka-ack-level=none 에서는 메시지 실패에 대한 표시가 없으므로 브로커가 다운된 동안 전송된 메시지는 다시 시도되지 않습니다. 브로커가 다시 가동되면 새 알림만 표시됩니다.

2.15.3. 주제 생성

버킷 알림을 생성하기 전에 주제를 생성할 수 있습니다. 주제는 SNS(Simple Notification Service) 엔티티이고 모든 주제 작업(즉, 생성,삭제,목록가져오기 )은 Cryostat 작업입니다. 주제에는 버킷 알림이 생성될 때 사용되는 엔드포인트 매개변수가 있어야 합니다. 요청이 성공하면 응답에 나중에 버킷 알림 요청에서 이 주제를 참조하는 데 사용할 수 있는 ARM(Amazon Resource Name) 항목이 포함됩니다.

참고

topic_arn 은 버킷 알림 구성을 제공하고 주제가 생성된 후 생성됩니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph Object Gateway 설치
  • 사용자 액세스 키 및 시크릿 키.
  • 엔드포인트 매개 변수.

프로세스

  1. 다음 요청 형식으로 주제를 생성합니다.

    구문

    POST
    Action=CreateTopic
    &Name=TOPIC_NAME
    [&Attributes.entry.1.key=amqp-exchange&Attributes.entry.1.value=EXCHANGE]
    [&Attributes.entry.2.key=amqp-ack-level&Attributes.entry.2.value=none|broker|routable]
    [&Attributes.entry.3.key=verify-ssl&Attributes.entry.3.value=true|false]
    [&Attributes.entry.4.key=kafka-ack-level&Attributes.entry.4.value=none|broker]
    [&Attributes.entry.5.key=use-ssl&Attributes.entry.5.value=true|false]
    [&Attributes.entry.6.key=ca-location&Attributes.entry.6.value=FILE_PATH]
    [&Attributes.entry.7.key=OpaqueData&Attributes.entry.7.value=OPAQUE_DATA]
    [&Attributes.entry.8.key=push-endpoint&Attributes.entry.8.value=ENDPOINT]
    [&Attributes.entry.9.key=persistent&Attributes.entry.9.value=true|false]

    요청 매개변수는 다음과 같습니다.

    • 엔드포인트: 알림을 보낼 끝점의 URL입니다.
    • OpaqueData: 불투명 데이터는 주제 구성에서 설정되고 주제에서 트리거한 모든 알림에 추가됩니다.
    • persistent: 이 끝점에 대한 알림이 비동기적으로 지속되는지 여부를 나타냅니다. 기본적으로 값은 false 입니다.
    • HTTP 끝점:

      • URL: https://FQDN:PORT
      • 포트 기본값은: 그에 따라 HTTP[S]에 80/443을 사용합니다.
      • verify-ssl: 클라이언트에서 서버 인증서의 유효성을 검사했는지 여부를 나타냅니다. 기본적으로 true 입니다.
    • AMQP0.9.1 끝점:

      • URL: amqp://USER:PASSWORD@FQDN:PORT[/VHOST].
      • 사용자 및 암호의 기본값은 guestguest 입니다.
      • 사용자 및 암호 세부 정보는 HTTPS를 통해 제공해야 합니다. 그러지 않으면 주제 생성 요청이 거부됩니다.
      • 포트 기본값은: 5672입니다.
      • vhost 의 기본값은 "/"입니다.
      • AMQP-exchange: 교환이 존재해야 하며 주제를 기반으로 메시지를 라우팅할 수 있어야 합니다. 이는 AMQP0.9.1의 필수 매개변수입니다. 동일한 엔드포인트를 가리키는 다양한 주제는 동일한 교환을 사용해야 합니다.
      • AMQP-ack-level: 최종 목적지로 전달되기 전에 브로커에 메시지가 지속될 수 있으므로 승인이 필요합니다. 세 가지 승인 방법이 있습니다.

        • none: 브로커로 전송되는 경우 메시지가 전달되는 것으로 간주됩니다.
        • broker: 기본적으로 브로커가 승인한 경우 메시지가 전달되는 것으로 간주됩니다.
        • 라우팅 가능: 브로커가 소비자에게 라우팅할 수 있는 경우 전달된 메시지로 간주됩니다.

          참고

          특정 매개 변수의 키와 값은 동일한 행 또는 특정 순서로 존재할 필요는 없지만 동일한 인덱스를 사용해야 합니다. 특성 인덱싱은 순차적이거나 특정 값에서 시작할 필요가 없습니다.

          참고

          topic-name 은 AMQP 항목에 사용됩니다.

    • Kafka 끝점:

      • URL: kafka://USER:PASSWORD@FQDN:PORT.
      • use-ssl 은 기본적으로 false 로 설정됩니다. use-ssltrue 로 설정된 경우 브로커와의 연결에 보안 연결이 사용됩니다.
      • ca-location 이 제공되고 보안 연결이 사용되는 경우 브로커를 인증하는 데 기본 CA 대신 지정된 CA가 사용됩니다.
      • 사용자 및 암호는 HTTP[S]를 통해서만 제공될 수 있습니다. 그러지 않으면 주제 생성 요청이 거부됩니다.
      • 사용자 및 암호는 use-ssl 과 함께만 제공될 수 있습니다. 그러지 않으면 브로커에 대한 연결이 실패합니다.
      • 포트 기본값은: 9092입니다.
      • Kafka-ack-level: 최종 목적지로 전달되기 전에 메시지가 브로커에 유지될 수 있으므로 필요한 승인을 종료하는 끝 없음. 두 가지 승인 방법이 있습니다.

        • none: 브로커로 전송되는 경우 메시지가 전달되는 것으로 간주됩니다.
        • broker: 기본적으로 브로커가 승인한 경우 메시지가 전달되는 것으로 간주됩니다.

다음은 응답 형식의 예입니다.

예제

<CreateTopicResponse xmlns="https://sns.amazonaws.com/doc/2010-03-31/">
    <CreateTopicResult>
        <TopicArn></TopicArn>
    </CreateTopicResult>
    <ResponseMetadata>
        <RequestId></RequestId>
    </ResponseMetadata>
</CreateTopicResponse>

참고

응답의 Amazon Resource Name(ARN) 주제는 arn:aws:sns:ZONE_GROUP:TENANT: 체계를 갖습니다.

다음은 AMQP0.9.1 끝점의 예입니다.

예제

client.create_topic(Name='my-topic' , Attributes={'push-endpoint': 'amqp://127.0.0.1:5672', 'amqp-exchange': 'ex1', 'amqp-ack-level': 'broker'}) "

2.15.4. 주제 정보 가져오기

특정 항목에 대한 정보를 반환합니다. 제공되는 경우 엔드포인트 정보가 포함될 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph Object Gateway 설치
  • 사용자 액세스 키 및 시크릿 키.
  • 엔드포인트 매개 변수.

프로세스

  1. 다음 요청 형식으로 주제 정보를 가져옵니다.

    구문

    POST
    Action=GetTopic
    &TopicArn=TOPIC_ARN

    다음은 응답 형식의 예입니다.

    <GetTopicResponse>
    <GetTopicRersult>
    <Topic>
    <User></User>
    <Name></Name>
    <EndPoint>
    <EndpointAddress></EndpointAddress>
    <EndpointArgs></EndpointArgs>
    <EndpointTopic></EndpointTopic>
    <HasStoredSecret></HasStoredSecret>
    <Persistent></Persistent>
    </EndPoint>
    <TopicArn></TopicArn>
    <OpaqueData></OpaqueData>
    </Topic>
    </GetTopicResult>
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </GetTopicResponse>

    다음은 태그 및 정의입니다.

    • User: 주제를 만든 사용자의 이름입니다.
    • Name: 주제의 이름입니다.
    • JSON 형식의 끝점은 다음과 같습니다.

      • EndpointAddress: 끝점 URL입니다. 엔드포인트 URL에 사용자 및 암호 정보가 포함된 경우 HTTPS를 통해 요청을 수행해야 합니다. otheriwse, topic get 요청이 거부됩니다.

        • EndPointArgs: 끝점 인수입니다.
        • EndpointTopic: 엔드포인트로 전송되는 주제 이름은 위의 예제 주제 이름과 다를 수 있습니다.
        • HasStoredSecret: 끝점 URL에 사용자 및 암호 정보가 포함된 경우true 입니다.
        • persistent: 주제가 지속되는 경우true 입니다.
    • TopicArn: 주제 ARN.
    • OpaqueData: 주제에 대한 불투명 데이터 집합입니다.

2.15.5. 주제 나열

사용자가 정의한 주제를 나열합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph Object Gateway 설치
  • 사용자 액세스 키 및 시크릿 키.
  • 엔드포인트 매개 변수.

프로세스

  1. 다음 요청 형식으로 주제 정보를 나열합니다.

    구문

    POST
    Action=ListTopics

    다음은 응답 형식의 예입니다.

    <ListTopicdResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/">
    <ListTopicsRersult>
    <Topics>
    <member>
    <User></User>
    <Name></Name>
    <EndPoint>
    <EndpointAddress></EndpointAddress>
    <EndpointArgs></EndpointArgs>
    <EndpointTopic></EndpointTopic>
    </EndPoint>
    <TopicArn></TopicArn>
    <OpaqueData></OpaqueData>
    </member>
    </Topics>
    </ListTopicsResult>
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </ListTopicsResponse>
    참고

    엔드포인트 URL에 사용자 및 암호 정보가 포함된 경우 HTTPS를 통해 요청을 수행해야 합니다. 그러지 않으면 주제 목록 요청이 거부됩니다.

2.15.6. 주제 삭제

삭제된 주제를 제거하면 작업이 없으며 오류가 아닙니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph Object Gateway 설치
  • 사용자 액세스 키 및 시크릿 키.
  • 엔드포인트 매개 변수.

프로세스

  1. 다음 요청 형식으로 주제를 삭제합니다.

    구문

    POST
    Action=DeleteTopic
    &TopicArn=TOPIC_ARN

    다음은 응답 형식의 예입니다.

    <DeleteTopicResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/">
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </DeleteTopicResponse>

2.15.7. 주제 관리에 명령줄 인터페이스 사용

명령줄 인터페이스를 사용하여 주제를 나열, 가져오기 및 제거할 수 있습니다.

사전 요구 사항

  • Ceph Object Gateway 노드에 대한 루트 수준 액세스.

프로세스

  1. 사용자의 모든 주제 목록을 가져오려면 다음을 수행합니다.

    구문

    radosgw-admin topic list --uid=USER_ID

    예제

    [root@rgw ~]# radosgw-admin topic list --uid=example

  2. 특정 주제의 구성을 가져오려면 다음을 수행합니다.

    구문

    radosgw-admin topic get --uid=USER_ID --topic=TOPIC_NAME

    예제

    [root@rgw ~]# radosgw-admin topic get --uid=example --topic=example-topic

  3. 특정 주제를 제거하려면 다음을 수행합니다.

    구문

    radosgw-admin topic rm --uid=USER_ID --topic=TOPIC_NAME

    예제

    [root@rgw ~]# radosgw-admin topic rm --uid=example --topic=example-topic

2.15.8. 알림 구성 관리

명령줄 인터페이스를 사용하여 버킷의 알림 구성을 나열, 가져오기 및 제거할 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph Object Gateway가 구성되어 있습니다.

프로세스

  • 모든 버킷 알림 구성을 나열합니다.

    구문

    radosgw-admin notification list --bucket=BUCKET_NAME

    예제

    [root@host04 ~]# radosgw-admin notification list --bucket bkt2
    {
        "notifications": [
            {
                "TopicArn": "arn:aws:sns:default::topic1",
                "Id": "notif1",
                "Events": [
                    "s3:ObjectCreated:*",
                    "s3:ObjectRemoved:*"
                ],
                "Filter": {
                    "S3Key": {},
                    "S3Metadata": {},
                    "S3Tags": {}
                }
            },
            {
                "TopicArn": "arn:aws:sns:default::topic1",
                "Id": "notif2",
                "Events": [
                    "s3:ObjectSynced:*"
                ],
                "Filter": {
                    "S3Key": {},
                    "S3Metadata": {},
                    "S3Tags": {}
                }
            }
        ]
    }

  • 버킷 알림 구성을 가져옵니다.

    구문

    radosgw-admin notification get --bucket BUCKET_NAME --notification-id NOTIFICATION_ID

    예제

    [root@host04 ~]# radosgw-admin notification get --bucket bkt2 --notification-id notif2
    {
        "TopicArn": "arn:aws:sns:default::topic1",
        "Id": "notif2",
        "Events": [
            "s3:ObjectSynced:*"
        ],
        "Filter": {
            "S3Key": {},
            "S3Metadata": {},
            "S3Tags": {}
        }
    }

  • 특정 버킷 알림 구성을 제거합니다.

    구문

    radosgw-admin notification rm --bucket BUCKET_NAME [--notification-id NOTIFICATION_ID]

    여기에서 NOTIFICATION_ID 는 선택 사항입니다. 지정하지 않으면 명령에서 해당 버킷의 모든 알림 구성을 제거합니다.

    예제

    [root@host04 ~]# radosgw-admin notification rm --bucket bkt2 --notification-id notif1

2.15.9. 이벤트 레코드

이벤트에는 Ceph Object Gateway에서 수행한 작업에 대한 정보가 들어 있으며 HTTP, HTTPS, Kafka 또는 AMQ0.9.1과 같이 선택한 끝점을 통해 페이로드로 전송됩니다. 이벤트 레코드는 JSON 형식입니다.

다음 ObjectLifecycle:Expiration 이벤트가 지원됩니다.

  • ObjectLifecycle:Expiration:Current
  • ObjectLifecycle:Expiration:NonCurrent
  • ObjectLifecycle:Expiration:DeleteMarker
  • ObjectLifecycle:Expiration:AbortMultipartUpload

예제

{"Records":[
    {
        "eventVersion":"2.1",
        "eventSource":"ceph:s3",
        "awsRegion":"us-east-1",
        "eventTime":"2019-11-22T13:47:35.124724Z",
        "eventName":"ObjectCreated:Put",
        "userIdentity":{
            "principalId":"tester"
        },
        "requestParameters":{
            "sourceIPAddress":""
        },
        "responseElements":{
            "x-amz-request-id":"503a4c37-85eb-47cd-8681-2817e80b4281.5330.903595",
            "x-amz-id-2":"14d2-zone1-zonegroup1"
        },
        "s3":{
            "s3SchemaVersion":"1.0",
            "configurationId":"mynotif1",
            "bucket":{
                "name":"mybucket1",
                "ownerIdentity":{
                    "principalId":"tester"
                },
                "arn":"arn:aws:s3:us-east-1::mybucket1",
                "id":"503a4c37-85eb-47cd-8681-2817e80b4281.5332.38"
            },
            "object":{
                "key":"myimage1.jpg",
                "size":"1024",
                "eTag":"37b51d194a7513e45b56f6524f2d51f2",
                "versionId":"",
                "sequencer": "F7E6D75DC742D108",
                "metadata":[],
                "tags":[]
            }
        },
        "eventId":"",
        "opaqueData":"me@example.com"
    }
]}

다음은 이벤트 레코드 키 및 해당 정의입니다.

  • awsRegion: Zonegroup.
  • eventTime: 이벤트가 트리거된 시기를 나타내는 Timestamp입니다.
  • eventname: 이벤트의 유형입니다. ObjectCreated,ObjectRemoved 또는 ObjectLifecycle:Expiration일 수 있습니다.
  • userIdentity.principalId: 이벤트를 트리거한 사용자의 ID입니다.
  • requestParameters.sourceIPAddress: 이벤트를 트리거한 클라이언트의 IP 주소입니다. 이 필드는 지원되지 않습니다.
  • response Cryostats.x-amz-request-id: 이벤트를 트리거한 요청 ID입니다.
  • response Cryostats.x_amz_id_2: 이벤트가 트리거된 Ceph Object Gateway의 ID입니다. ID 형식은 RGWID-ZONE-ZONEGROUP 입니다.
  • s3.configurationId: 이벤트를 생성한 알림 ID입니다.
  • s3.bucket.name: 버킷의 이름입니다.
  • s3.bucket.ownerIdentity.principalId: 버킷의 소유자입니다.
  • s3.bucket.arn: 버킷의 Amazon 리소스 이름(ARN)입니다.
  • s3.bucket.id: 버킷의 ID입니다.
  • s3.object.key: 오브젝트 키입니다.
  • s3.object.size: 오브젝트의 크기입니다.
  • s3.object.eTag: 오브젝트 etag입니다.
  • s3.object.version: 버전이 지정된 버킷의 오브젝트 버전입니다.
  • s3.object.sequencer: controlPlanetonically increasing identifier of the change per object in the hexadecimal format.
  • s3.object.metadata: x-amz-meta 로 전송된 오브젝트에 설정된 모든 메타데이터입니다.
  • s3.object.tags: 오브젝트에 설정된 모든 태그입니다.
  • s3.eventId: 이벤트의 고유 ID입니다.
  • s3.opaqueData: Opaque 데이터는 주제 구성에 설정되어 주제에서 트리거한 모든 알림에 추가됩니다.

추가 리소스

2.15.10. 지원되는 이벤트 유형

지원되는 이벤트 유형은 다음과 같습니다.

  • s3:ObjectCreated:*
  • s3:ObjectCreated:Put
  • s3:ObjectCreated:Post
  • s3:ObjectCreated:Copy
  • s3:ObjectCreated:CompleteMultipartUpload
참고

다중 파트 업로드에서는 프로세스가 종료될 때 ObjectCreated:CompleteMultipartUpload 알림이 전송됩니다.

  • s3:ObjectRemoved:*
  • s3:ObjectRemoved:Delete
  • s3:ObjectRemoved:DeleteMarkerCreated
  • s3:ObjectLifecycle:Expiration:Current
  • s3:ObjectLifecycle:Expiration:NonCurrent
  • s3:ObjectLifecycle:Expiration:DeleteMarker
  • s3:ObjectLifecycle:Expiration:AbortMultipartUpload
  • s3:ObjectLifecycle:Transition:Current
  • s3:ObjectLifecycle:Transition:NonCurrent
  • s3:ObjectSynced:Create

2.15.11. 버킷 정보 가져오기

기존 버킷의 하위 집합에 대한 정보를 가져옵니다. 버킷 없이 uid 가 지정되면 사용자에게 속하는 모든 버킷이 반환됩니다. 버킷 만 지정하면 특정 버킷에 대한 정보가 검색됩니다.

capabilities

`buckets=read`

구문

GET /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

bucket
설명
정보를 반환하는 버킷입니다.
유형
문자열
예제
foo_bucket
필수 항목
없음
uid
설명
버킷 정보를 검색할 사용자입니다.
유형
문자열
예제
foo_user
필수 항목
없음
통계
설명
버킷 통계를 반환합니다.
유형
부울
예제
true [False]
필수 항목
없음

응답 엔터티

통계
설명
버킷 정보당.
유형
컨테이너
상위
해당 없음
버킷
설명
하나 이상의 버킷 컨테이너 목록을 포함합니다.
유형
컨테이너
상위
버킷
bucket
설명
단일 버킷 정보를 위한 컨테이너입니다.
유형
컨테이너
상위
버킷
name
설명
버킷의 이름입니다.
유형
문자열
상위
bucket
pool
설명
버킷이 저장된 풀입니다.
유형
문자열
상위
bucket
id
설명
고유한 버킷 ID입니다.
유형
문자열
상위
bucket
마커
설명
내부 버킷 태그.
유형
문자열
상위
bucket
소유자
설명
버킷 소유자의 사용자 ID입니다.
유형
문자열
상위
bucket
usage
설명
스토리지 사용 정보.
유형
컨테이너
상위
bucket
인덱스
설명
버킷 인덱스의 상태.
유형
문자열
상위
bucket

성공하면 요청은 버킷 정보와 함께 버킷의 컨테이너를 반환합니다.

특수 오류 응답

IndexRepairFailed
설명
버킷 인덱스 복구에 실패했습니다.
코드
409 충돌

2.15.12. 버킷 인덱스 확인

기존 버킷의 인덱스를 확인합니다.

참고

Check -objects를 사용한 multipart 오브젝트 회계를 확인하려면 수정 을 True로 설정해야 합니다.

capabilities

buckets=write

구문

GET /admin/bucket?index&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

bucket
설명
정보를 반환하는 버킷입니다.
유형
문자열
예제
foo_bucket
필수 항목
제공됨
check-objects
설명
다중 부분 개체 계산을 확인합니다.
유형
부울
예제
true [False]
필수 항목
없음
fix
설명
또한 확인할 때 버킷 인덱스를 수정합니다.
유형
부울
예제
false [False]
필수 항목
없음

응답 엔터티

인덱스
설명
버킷 인덱스의 상태.
유형
문자열

특수 오류 응답

IndexRepairFailed
설명
버킷 인덱스 복구에 실패했습니다.
코드
409 충돌

2.15.13. 버킷 제거

기존 버킷을 제거합니다.

capabilities

`buckets=write`

구문

DELETE /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

bucket
설명
제거할 버킷입니다.
유형
문자열
예제
foo_bucket
필수 항목
제공됨
purge-objects
설명
삭제하기 전에 버킷의 오브젝트를 제거합니다.
유형
부울
예제
true [False]
필수 항목
없음

응답 엔터티

없음.

특수 오류 응답

BucketNotEmpty
설명
비어 있지 않은 버킷을 삭제하려고 했습니다.
코드
409 충돌
ObjectRemovalFailed
설명
개체를 제거할 수 없습니다.
코드
409 충돌

2.15.16. 버킷 또는 오브젝트 정책 가져오기

오브젝트 또는 버킷의 정책을 읽습니다.

capabilities

`buckets=read`

구문

GET /admin/bucket?policy&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

bucket
설명
정책을 읽을 버킷입니다.
유형
문자열
예제
foo_bucket
필수 항목
제공됨
object
설명
정책을 읽을 오브젝트입니다.
유형
문자열
예제
foo.txt
필수 항목
없음

응답 엔터티

policy
설명
액세스 제어 정책.
유형
컨테이너
상위
해당 없음

성공하면 오브젝트 또는 버킷 정책을 반환합니다.

특수 오류 응답

IncompleteBody
설명
버킷 정책 요청 또는 버킷에 버킷이 지정되지 않았으며 오브젝트 정책 요청에 오브젝트가 지정되지 않았습니다.
코드
400 잘못된 요청

2.15.17. 오브젝트 제거

기존 오브젝트를 제거합니다.

참고

소유자를 일시 중지하지 않아도 됩니다.

capabilities

`buckets=write`

구문

DELETE /admin/bucket?object&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

bucket
설명
제거할 오브젝트가 포함된 버킷입니다.
유형
문자열
예제
foo_bucket
필수 항목
제공됨
object
설명
제거할 오브젝트입니다.
유형
문자열
예제
foo.txt
필수 항목
제공됨

응답 엔터티

없음.

특수 오류 응답

NoSuchObject
설명
지정된 개체가 존재하지 않습니다.
코드
404 not found
ObjectRemovalFailed
설명
개체를 제거할 수 없습니다.
코드
409 충돌

2.15.18. 할당량

관리 Operations API를 사용하면 사용자 및 사용자가 소유한 버킷에 할당량을 설정할 수 있습니다. 쿼터에는 버킷의 최대 오브젝트 수와 최대 스토리지 크기(MB)가 포함됩니다.

할당량을 보려면 사용자에게 users=read 기능이 있어야 합니다. 할당량을 설정, 수정 또는 비활성화하려면 사용자에게 users=write 기능이 있어야 합니다.

할당량의 유효한 매개변수는 다음과 같습니다.

  • 버킷: 버킷 옵션을 사용하면 사용자가 소유한 버킷에 대한 할당량을 지정할 수 있습니다.
  • 최대 오브젝트: max-objects 설정을 사용하면 최대 오브젝트 수를 지정할 수 있습니다. 음수 값은 이 설정을 비활성화합니다.
  • 최대 크기: max-size 옵션을 사용하면 최대 바이트 수에 대한 할당량을 지정할 수 있습니다. 음수 값은 이 설정을 비활성화합니다.
  • 할당량 범위: 할당량 범위 옵션은 할당량 범위를 설정합니다. 옵션은 버킷사용자 입니다.

2.15.19. 사용자 할당량 가져오기

할당량을 얻으려면 사용자에게 읽기 권한이 설정된 사용자 기능이 설정되어 있어야 합니다.

구문

GET /admin/user?quota&uid=UID&quota-type=user

2.15.20. 사용자 할당량 설정

할당량을 설정하려면 사용자에게 쓰기 권한이 있는 사용자 기능이 설정되어 있어야 합니다.

구문

PUT /admin/user?quota&uid=UID&quota-type=user

콘텐츠에는 해당 읽기 작업에서 인코딩된 할당량 설정의 JSON 표현이 포함되어야 합니다.

2.15.21. 버킷 할당량 가져오기

기존 버킷의 하위 집합에 대한 정보를 가져옵니다. 버킷 없이 uid 가 지정되면 사용자에게 속하는 모든 버킷이 반환됩니다. 버킷 만 지정하면 특정 버킷에 대한 정보가 검색됩니다.

capabilities

`buckets=read`

구문

GET /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

bucket
설명
정보를 반환하는 버킷입니다.
유형
문자열
예제
foo_bucket
필수 항목
없음
uid
설명
버킷 정보를 검색할 사용자입니다.
유형
문자열
예제
foo_user
필수 항목
없음
통계
설명
버킷 통계를 반환합니다.
유형
부울
예제
true [False]
필수 항목
없음

응답 엔터티

통계
설명
버킷 정보당.
유형
컨테이너
상위
해당 없음
버킷
설명
하나 이상의 버킷 컨테이너 목록을 포함합니다.
유형
컨테이너
상위
해당 없음
bucket
설명
단일 버킷 정보를 위한 컨테이너입니다.
유형
컨테이너
상위
버킷
name
설명
버킷의 이름입니다.
유형
문자열
상위
bucket
pool
설명
버킷이 저장된 풀입니다.
유형
문자열
상위
bucket
id
설명
고유한 버킷 ID입니다.
유형
문자열
상위
bucket
마커
설명
내부 버킷 태그.
유형
문자열
상위
bucket
소유자
설명
버킷 소유자의 사용자 ID입니다.
유형
문자열
상위
bucket
usage
설명
스토리지 사용 정보.
유형
컨테이너
상위
bucket
인덱스
설명
버킷 인덱스의 상태.
유형
문자열
상위
bucket

성공하면 요청은 버킷 정보와 함께 버킷의 컨테이너를 반환합니다.

특수 오류 응답

IndexRepairFailed
설명
버킷 인덱스 복구에 실패했습니다.
코드
409 충돌

2.15.22. 버킷 할당량 설정

할당량을 설정하려면 사용자에게 쓰기 권한이 있는 사용자 기능이 설정되어 있어야 합니다.

구문

PUT /admin/user?quota&uid=UID&quota-type=bucket

콘텐츠에는 해당 읽기 작업에서 인코딩된 할당량 설정의 JSON 표현이 포함되어야 합니다.

2.15.23. 사용 정보 가져오기

대역폭 사용 정보 요청.

capabilities

`usage=read`

구문

GET /admin/usage?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

uid
설명
사용자가 정보를 요청하는 사용자입니다.
유형
문자열
필수 항목
제공됨
start
설명
데이터 요청이 시작된 날짜 및 선택적으로 시간입니다. 예를 들면 2012-09-25 16:00:00 입니다.
유형
문자열
필수 항목
없음
end
설명
데이터 요청이 종료되는 날짜 및 선택적으로 시간입니다. 예를 들면 2012-09-25 16:00:00 입니다.
유형
문자열
필수 항목
없음
show-entries
설명
데이터 항목을 반환해야 하는지 여부를 지정합니다.
유형
부울
필수 항목
없음
show-summary
설명
데이터 항목을 반환해야 하는지 여부를 지정합니다.
유형
부울
필수 항목
없음

응답 엔터티

usage
설명
사용 정보를 위한 컨테이너입니다.
유형
컨테이너
항목
설명
사용 항목 정보를 위한 컨테이너입니다.
유형
컨테이너
user
설명
사용자 데이터 정보를 위한 컨테이너입니다.
유형
컨테이너
소유자
설명
버킷을 보유한 사용자의 이름입니다.
유형
문자열
bucket
설명
버킷 이름입니다.
유형
문자열
time
설명
첫 번째 관련 시간 시작으로 반올림되는 데이터가 지정되는 시간 하한입니다.
유형
문자열
epoch
설명
1970년 1 월 1일 이후의 시간(초)입니다.
유형
문자열
카테고리
설명
통계 카테고리를 위한 컨테이너입니다.
유형
컨테이너
항목
설명
통계 항목을 위한 컨테이너입니다.
유형
컨테이너
카테고리
설명
통계가 제공되는 요청 범주의 이름입니다.
유형
문자열
bytes_sent
설명
Ceph Object Gateway에서 보낸 바이트 수입니다.
유형
정수
bytes_received
설명
Ceph Object Gateway에서 수신한 바이트 수입니다.
유형
정수
Ops
설명
작업 수입니다.
유형
정수
successful_ops
설명
성공한 작업 수입니다.
유형
정수
summary
설명
성공한 작업 수입니다.
유형
컨테이너
합계
설명
통계 요약을 위한 컨테이너는 합계로 집계되었습니다.
유형
컨테이너

성공하면 응답에 요청된 정보가 포함됩니다.

2.15.24. 사용 정보 제거

사용 정보를 제거합니다. 날짜를 지정하지 않으면 모든 사용 정보를 제거합니다.

capabilities

`usage=write`

구문

DELETE /admin/usage?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME

요청 매개변수

uid
설명
사용자가 정보를 요청하는 사용자입니다.
유형
문자열
예제
foo_user
필수 항목
제공됨
start
설명
데이터 요청이 시작된 날짜 및 선택적으로 시간입니다. 예를 들면 2012-09-25 16:00:00 입니다.
유형
문자열
예제
2012-09-25 16:00:00
필수 항목
없음
end
설명
데이터 요청이 종료되는 날짜 및 선택적으로 시간입니다. 예를 들면 2012-09-25 16:00:00 입니다.
유형
문자열
예제
2012-09-25 16:00:00
필수 항목
없음
remove-all
설명
다중 사용자 데이터를 제거하기 위해 uid 가 지정되지 않은 경우 필요합니다.
유형
부울
예제
true [False]
필수 항목
없음

2.15.25. 표준 오류 응답

다음 목록에서는 표준 오류 응답 및 해당 설명을 자세히 설명합니다.

AccessDenied
설명
액세스가 거부되었습니다.
코드
403 금지됨
InternalError
설명
내부 서버 오류.
코드
500 내부 서버 오류
NoSuchUser
설명
사용자가 존재하지 않습니다.
코드
404 not found
NoSuchBucket
설명
버킷이 존재하지 않습니다.
코드
404 not found
NoSuchKey
설명
이러한 액세스 키가 없습니다.
코드
404 not found
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.