swift/doc/source/api/pagination.rst
zhangdebo a7dd5f655d Replace Chinese quotes with English quotes
Change-Id: Ic7025ba79eadb39f75dd03135fae3326138b3ded
2018-09-15 03:20:24 -04:00

2.9 KiB

Page through large lists of containers or objects

If you have a large number of containers or objects, you can use the marker, limit, and end_marker parameters to control how many items are returned in a list and where the list starts or ends.

  • marker

    When you request a list of containers or objects, Object Storage returns a maximum of 10,000 names for each request. To get subsequent names, you must make another request with the marker parameter. Set the marker parameter to the name of the last item returned in the previous list. You must URL-encode the marker value before you send the HTTP request. Object Storage returns a maximum of 10,000 names starting after the last item returned.

  • limit

    To return fewer than 10,000 names, use the limit parameter. If the number of names returned equals the specified limit (or 10,000 if you omit the limit parameter), you can assume there are more names to list. If the number of names in the list is exactly divisible by the limit value, the last request has no content.

  • end_marker

    Limits the result set to names that are less than the end_marker parameter value. You must URL-encode the end_marker value before you send the HTTP request.

To page through a large list of containers

Assume the following list of container names:

apples
bananas
kiwis
oranges
pears
  1. Use a limit of two:

    # curl -i $publicURL/?limit=2 -X GET -H "X-Auth-Token: $token"
    apples
    bananas

    Because two container names are returned, there are more names to list.

  2. Make another request with a marker parameter set to the name of the last item returned:

    # curl -i $publicURL/?limit=2&marker=bananas -X GET -H \
      “X-Auth-Token: $token"
    kiwis
    oranges

    Again, two items are returned, and there might be more.

  3. Make another request with a marker of the last item returned:

    # curl -i $publicURL/?limit=2&marker=oranges -X GET -H \"
      X-Auth-Token: $token"
    pears

    You receive a one-item response, which is fewer than the limit number of names. This indicates that this is the end of the list.

  4. Use the end_marker parameter to limit the result set to object names that are less than the end_marker parameter value:

    # curl -i $publicURL/?end_marker=oranges -X GET -H \"
     X-Auth-Token: $token"
    apples
    bananas
    kiwis

    You receive a result set of all container names before the end-marker value.