Object query method and device, equipment, storage medium and program product

By extending queries locally to object group queries on the object storage gateway and combining this with lexicographical range management, the problem of long query latency in cloud storage is solved, resulting in more efficient query response.

CN121597710APending Publication Date: 2026-03-03CHINA TELECOM CLOUD TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511770360.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-28
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

In cloud storage environments, when users access object storage through file system interfaces, query requests experience long latency, and existing optimization methods, which rely on external means, have failed to effectively reduce latency.

Method used

When the query result is empty in the local storage of the object storage gateway, the query for a single target object is expanded into a query for a group of objects, reducing the number of API calls to the object storage service server, and optimizing the query process through local storage caching and lexicographical range management.

Benefits of technology

This significantly reduces the latency of object queries, improves system performance and response speed, and reduces dependence on object storage interfaces.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121597710A_ABST
    Figure CN121597710A_ABST
Patent Text Reader

Abstract

The invention relates to an object query method and device, equipment, a storage medium and a program product. The method comprises the following steps: receiving an object query request sent by terminal equipment, wherein the object query request comprises an identifier of a to-be-queried target object; determining a query result state of the target object in the local storage of the object storage gateway according to the identifier of the target object to be queried; under the condition that the query result state is that the query result of the target object is empty in the local storage, a reading request of an object group is sent to an object storage server, the object group comprises a continuous target number of objects, and a starting point object of the object group is the target object; receiving a query result of the object group sent by the object storage server, wherein the query result of the object group comprises a query result of the target object; and storing the query result of the object group in a local storage, and sending the query result of the target object to the terminal equipment. By adopting the method, the delay time of object query can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of cloud computing technology, and in particular to an object query method, apparatus, device, storage medium, and program product. Background Technology

[0002] With the development of cloud computing technology, cloud storage has become an important means of storing large amounts of data. Among them, Zettabyte Object Storage (ZOS) is a cost-effective cloud storage solution. ZOS provides data storage services over the Internet, storing data as objects on remote servers. Each object has a unique identifier and can be accessed and manipulated independently.

[0003] In related technologies, it is difficult for users to directly manipulate data in object storage, and they usually prefer to manage data in the form of a local file system. When users use object storage through a file storage gateway as a file system interface, they typically need to call the object storage interface to retrieve the requested data for the received query request, which results in a long delay in the query request. Summary of the Invention

[0004] Therefore, it is necessary to provide an object query method, apparatus, device, storage medium, and program product that can reduce the latency of object queries in order to address the above-mentioned technical problems.

[0005] Firstly, this application provides an object query method applied to an object storage gateway, including:

[0006] Receive an object query request sent by a terminal device, wherein the object query request includes the identifier of the target object to be queried;

[0007] Based on the identifier of the target object to be queried, determine the query result status of the target object in the local storage of the object storage gateway;

[0008] If the query result status indicates that the query result for the target object is empty in the local storage, a read request for an object group is sent to the object storage server. The object group includes a consecutive target number of objects, and the starting object of the object group is the target object.

[0009] Receive the query results of the object group sent by the object storage server, wherein the query results of the object group include the query results of the target object;

[0010] The query results of the object group are stored in the local storage, and the query results of the target object are sent to the terminal device.

[0011] In one embodiment, after determining the query result status of the target object in the local storage of the object storage gateway, the method further includes:

[0012] If the query result status indicates that the query result for the target object is not empty in the local storage and the query result has timed out, an update request for the target object is sent to the object storage server.

[0013] Receive update information of the target object sent by the object storage server;

[0014] Update the query results for the target object based on the updated information of the target object;

[0015] The updated query results for the target object are sent to the terminal device.

[0016] In one embodiment, after determining the query result status of the target object in the local storage of the object storage gateway, the method further includes:

[0017] If the query result status indicates that the query result for the target object is not empty in the local storage and the query result has not timed out, the query result for the target object in the local storage is sent to the terminal device.

[0018] In one embodiment, after receiving the query results of the object group sent by the object storage server, the method further includes:

[0019] Generate the lexicographical range corresponding to the object group;

[0020] Update the list of downloaded gaps based on the lexicographical range corresponding to the object group.

[0021] In one embodiment, the starting node of the lexicographical interval corresponding to the object group includes the identifier of the starting object of the object group, the ending node of the lexicographical interval corresponding to the object group includes the identifier of the ending object of the object group, and the timestamp of the lexicographical interval corresponding to the object group is the query timestamp of the object group.

[0022] In one embodiment, updating the downloaded gap list based on the lexicographical interval corresponding to the object group includes:

[0023] Based on the overlap between the lexicographical interval corresponding to the object group and the existing lexicographical interval in the downloaded gap list, the lexicographical interval corresponding to the object group is added to the downloaded gap list and the existing lexicographical interval is updated.

[0024] In one embodiment, updating the existing lexicographical range includes:

[0025] If the left portion of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group, update the starting node of the existing lexicographical interval.

[0026] If the right side of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group, update the end node of the existing lexicographical interval.

[0027] If the middle part of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group, the existing lexicographical interval will be segmented.

[0028] If the existing lexicographical interval is completely covered by the lexicographical interval corresponding to the object group, the existing lexicographical interval is deleted.

[0029] In one embodiment, the timeout update strategy for the downloaded gap list includes a lazy deletion strategy.

[0030] In one embodiment, determining the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried includes:

[0031] The identifier of the target object to be queried is retrieved from the list of downloaded gaps to determine the query result status of the target object in the local storage of the object storage gateway.

[0032] In one embodiment, after receiving the query results of the object group sent by the object storage server, the method further includes:

[0033] Based on the query results of the object group, update the directory objects in the integrity directory list and determine the inspection results of the directory objects;

[0034] Update the enumeration status of the directory object based on the inspection results of the directory object.

[0035] In one embodiment, determining the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried includes:

[0036] Based on the enumeration status of the directory objects to which the identifier of the target object belongs, determine the query result status of the target object in the local storage of the object storage gateway.

[0037] Secondly, this application also provides an object query device applied to an object storage gateway, the device comprising:

[0038] The receiving module is configured to receive an object query request sent by a terminal device, wherein the object query request includes the identifier of the target object to be queried; and to receive the query results of the object group sent by the object storage server, wherein the query results of the object group include the query results of the target object.

[0039] The processing module is used to determine the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried; and to store the query result of the object group in the local storage.

[0040] The sending module is configured to send a read request for an object group to the object storage server when the query result status indicates that the query result for the target object is empty in the local storage. The object group includes a consecutive target number of objects, and the starting object of the object group is the target object. The module then sends the query result for the target object to the terminal device.

[0041] In one embodiment, the sending module is further configured to send an update request for the target object to the object storage server when the query result status is that the query result for the target object is not empty in the local storage and the query result has timed out; and send the updated query result for the target object to the terminal device;

[0042] The receiving module is also used to receive update information of the target object sent by the object storage server;

[0043] The processing module is also used to update the query results of the target object based on the update information of the target object.

[0044] In one embodiment, the sending module is configured to send the query result of the target object in the local storage to the terminal device when the query result status is that the query result of the target object is not empty in the local storage and the query result has not timed out.

[0045] In one embodiment, the processing module is further configured to generate a lexicographical interval corresponding to the object group; and update the list of downloaded gaps based on the lexicographical interval corresponding to the object group.

[0046] In one embodiment, the starting node of the lexicographical interval corresponding to the object group includes the identifier of the starting object of the object group, the ending node of the lexicographical interval corresponding to the object group includes the identifier of the ending object of the object group, and the timestamp of the lexicographical interval corresponding to the object group is the query timestamp of the object group.

[0047] In one embodiment, the processing module is further configured to add the lexicographical interval corresponding to the object group to the downloaded gap list and update the existing lexicographical interval based on the overlap relationship between the lexicographical interval corresponding to the object group and the existing lexicographical interval in the downloaded gap list.

[0048] In one embodiment, the processing module is further configured to: update the starting node of the existing lexicographical interval when the left portion of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group; update the ending node of the existing lexicographical interval when the right portion of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group; segment the existing lexicographical interval when the middle portion of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group; and delete the existing lexicographical interval when it is completely covered by the lexicographical interval corresponding to the object group.

[0049] In one embodiment, the timeout update strategy for the downloaded gap list includes a lazy deletion strategy.

[0050] In one embodiment, the processing module is further configured to query the identifier of the target object to be queried in the downloaded gap list, and determine the query result status of the target object in the local storage of the object storage gateway.

[0051] In one embodiment, the processing module is further configured to update the directory objects in the integrity directory list and determine the inspection results of the directory objects based on the query results of the object group; and update the enumeration status of the directory objects based on the inspection results of the directory objects.

[0052] In one embodiment, the processing module is further configured to determine the query result status of the target object in the local storage of the object storage gateway based on the enumeration status of the directory objects to which the identifier of the target object belongs.

[0053] Thirdly, this application also provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the object query method of the first aspect described above.

[0054] Fourthly, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the object query method of the first aspect described above.

[0055] Fifthly, this application also provides a computer program product, including a computer program that, when executed by a processor, implements the object query method of the first aspect described above.

[0056] The aforementioned object query method, apparatus, device, storage medium, and program product receive an object query request sent by a terminal device, the object query request including the identifier of the target object to be queried; based on the identifier of the target object to be queried, determine the query result status of the target object in the local storage of the object storage gateway; if the query result status indicates that the query result of the target object is empty in the local storage, send a read request for an object group to the object storage server, the object group including a consecutive target number of objects, with the target object as the starting object of the object group; receive the query result of the object group sent by the object storage server, the query result of the object group including the query result of the target object; store the query result of the object group in the local storage, and send the query result of the target object to the terminal device. Because the query for a single target object is expanded into a query for an object group when the query result of the target object is empty in the local storage, subsequent queries for the object group do not need to call the object storage interface again, thus greatly reducing the object query latency. Attached Figure Description

[0057] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the description of the embodiments of this application or related technologies will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0058] Figure 1 An application environment diagram for an object query method provided in an embodiment of this application;

[0059] Figure 2 A flowchart illustrating an object query method provided in an embodiment of this application;

[0060] Figure 3 A flowchart illustrating another object query method provided in an embodiment of this application;

[0061] Figure 4 This is a schematic diagram of object bucket data provided in an embodiment of this application;

[0062] Figure 5 A structural block diagram of an object query device provided in an embodiment of this application;

[0063] Figure 6 This is an internal structural diagram of a computer device provided in an embodiment of this application. Detailed Implementation

[0064] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0065] The relevant technologies will be explained below.

[0066] With the development of cloud computing technology, cloud storage has become an important means of storing large amounts of data. Among them, Zettabyte Object Storage (ZOS) is a cost-effective cloud storage solution. ZOS provides data storage services over the Internet, storing data as objects on remote servers. Each object has a unique identifier and can be accessed and manipulated independently.

[0067] In related technologies, it is difficult for users to directly manipulate data in object storage; they typically prefer to manage data in the form of a local file system. When users access object storage through a file storage gateway as a file system interface, they usually need to call the object storage interface to retrieve the requested data for received query requests, which results in a relatively long query delay.

[0068] In addition, related technologies can also reduce query request latency by developing metadata caching functions, sacrificing local space for higher efficiency, or by using multi-threading for metadata traversal. However, these methods rely on external means and do not optimize from the internal system logic, so they are still not effective enough in reducing query request latency.

[0069] To address the aforementioned issues, embodiments of this application provide an object query method, apparatus, device, storage medium, and program product. When the query result for a target object is empty in local storage, the query for a single target object is expanded into a query for a group of objects. This eliminates the need to call the object storage interface for subsequent queries on the group of objects, thereby significantly reducing the latency of object queries.

[0070] The object query method provided in this application embodiment can be applied to, for example, Figure 1 In the application environment shown, terminal device 101 interacts with cloud server 103 via object storage gateway 102. Server 103 includes an object storage system.

[0071] Terminal device 101 can send an object query request to object storage gateway 102, the object query request including the identifier of the target object to be queried. Next, object storage gateway 102 determines the query result status of the target object in its local storage based on the identifier of the target object. If the query result status indicates that the query result for the target object is empty in local storage, object storage gateway 102 sends a read request for an object group to server 103. The object group includes a consecutive number of objects, with the target object as the starting object of the object group. Next, object storage gateway 102 receives the query results for the object group from server 103, the query results for the object group including the query result for the target object. Finally, object storage gateway 102 stores the query results for the object group in local storage and sends the query result for the target object to terminal device 101.

[0072] The terminal device 101 can be, but is not limited to, various personal computers, laptops, smartphones, tablets, IoT devices, and portable wearable devices. IoT devices can include smart speakers, smart TVs, smart air conditioners, smart in-vehicle devices, and projection devices. Portable wearable devices can include smartwatches, smart bracelets, and head-mounted displays. Head-mounted displays can be virtual reality (VR) devices, augmented reality (AR) devices, and smart glasses. The server 103 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud computing services.

[0073] In one exemplary embodiment, such as Figure 2 As shown, an object query method is provided, which can be applied to... Figure 1 The following explanation uses the object storage gateway as an example, including S201 to S205. Among them:

[0074] S201. Receive an object query request sent by the terminal device. The object query request includes the identifier of the target object to be queried.

[0075] In this application, when a terminal device needs to query data in an object storage server, it can send an object query request to the object storage gateway, which includes the identifier of the target object to be queried.

[0076] It should be understood that object storage can be a storage system designed to handle massive amounts of unstructured data. Object storage manages, saves, and retrieves data in the form of independent units, or "objects." Each object not only contains the actual data content, but also comes with a set of metadata describing its attributes, and an object identifier used to distinguish different objects.

[0077] The target object can be any object in object storage, and this application embodiment does not impose any restrictions on it. The identifier of the target object can be the object key of the target object.

[0078] S202. Based on the identifier of the target object to be queried, determine the query result status of the target object in the local storage of the object storage gateway.

[0079] In this step, after the object storage gateway receives the object query request sent by the terminal device, it can determine the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried.

[0080] The query results may include metadata about the target object. The query result status may include whether the target object is empty in the local storage of the object storage gateway and whether the query result has timed out in the local storage of the object storage gateway.

[0081] It should be understood that the embodiments of this application do not limit how to determine the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried. In some embodiments, the identifier of the target object to be queried is queried in the downloaded gap list to determine the query result status of the target object in the local storage of the object storage gateway.

[0082] For example, the downloaded gap list may include multiple lexicographical intervals. Each lexicographical interval is the object key interval corresponding to an object downloaded to the local storage of the object storage gateway, and includes the timestamp of that lexicographical interval. If the identifier of the target object is in any lexicographical interval of the downloaded gap list, it can be determined that the target object is not empty in the local storage of the object storage gateway; if the identifier of the target object is not in any lexicographical interval of the downloaded gap list, it can be determined that the target object is empty in the local storage of the object storage gateway.

[0083] For example, if the target object's identifier falls within any lexicographical interval of the downloaded gap list, calculate whether the sum of the timestamp corresponding to the lexicographical interval containing the target object's identifier and the valid duration is greater than or equal to the current time. If it is greater than or equal to the current time, it is determined that the query result has not timed out in the object storage gateway's local storage. If it is less than the current time, it is determined that the query result has timed out in the object storage gateway's local storage.

[0084] In other embodiments, the object storage gateway can also determine the query result status of the target object in the local storage of the object storage gateway based on the enumeration status of the directory objects to which the identifier of the target object belongs.

[0085] For example, if the enumeration status of the directory object to which the target object's identifier belongs is complete, it can be determined that the target object is not empty in the local storage of the object storage gateway. In this case, the sum of the timestamp corresponding to the directory object's enumeration status and the valid duration can be calculated to see if it is greater than or equal to the current time. If it is greater than or equal to the current time, it is determined that the query result has not timed out in the local storage of the object storage gateway. If it is less than the current time, it is determined that the query result has timed out in the local storage of the object storage gateway. For example, if the enumeration status of the directory object to which the target object's identifier belongs is incomplete, other methods can be used to determine whether the target object is empty in the local storage of the object storage gateway.

[0086] S203. If the query result status is that the query result of the target object is empty in the local storage, send a read request for the object group to the object storage server. The object group includes a continuous target number of objects, and the starting object of the object group is the target object.

[0087] In this step, after the object storage gateway determines the query result status of the target object in the local storage of the object storage gateway, if the query result status is that the query result of the target object is empty in the local storage, a read request for the object group can be sent to the object storage server.

[0088] For example, if the target object is (for the i-th object), the object storage gateway can then be based on the target object. Query results in local storage The state can be classified and processed in different ways. If If the local storage is empty, meaning there are no query results for the target object in the local storage, it indicates that the target object has not been queried or the query results for the target object have been discarded. In this case, the object storage gateway expands the single query for the target object into a request for the entire object group, and sends a read request for the entire object group to the object storage server to retrieve the query results for the whole group.

[0089] The object group consists of a continuous target number of objects, with the target object being the starting object of the object group.

[0090] For example, the target quantity mentioned above can be 1000, then correspondingly, the target object... Starting from this point, the object storage interface is invoked to retrieve a list of 1000 consecutive objects in lexicographical order from the object storage server. The object storage interface could be, for example, the ListObjectsV2 interface.

[0091] It should be understood that users often access a group of objects sequentially over a period of time, rather than just a single object. Therefore, by sending a read request for the object group to the object storage server, a query for a single target object can be expanded into a query for the entire object group. This eliminates the need to call the object storage interface again for subsequent queries on the object group, thereby accelerating sequential query requests, improving system performance and response speed, and significantly reducing object query latency.

[0092] S204. Receive the query results of the object group sent by the object storage server. The query results of the object group include the query results of the target object.

[0093] In some embodiments, in response to a read request, the object storage server can query all objects in the object group to obtain the query results for the object group. Subsequently, the object storage server can send the query results of the object group to the object storage gateway.

[0094] For example, the starting object of the object group is the target object. If the target number of object groups is 1000, then the object storage server can query them. The query results.

[0095] It should be understood that since the starting object of the object group is the target object, the query results of the object group retrieved in the object storage server will include the query results of the target object.

[0096] S205. Store the query results of the object group in local storage and send the query results of the target object to the terminal device.

[0097] For example, the starting object of the object group is the target object. If the target number of object groups can be 1000, then the object storage gateway will receive the data sent by the object storage server. The query results. Subsequently, the object storage gateway will... The query results are stored in local storage, and the results are stored in local storage. Send to the terminal device.

[0098] It should be understood that when the object storage gateway receives a subsequent sequential query request for the target object, if the queried object is in In the middle, the query results of the current object group can be returned directly, thereby accelerating sequential query requests and improving system performance.

[0099] In some embodiments, if the query result status indicates that the query result for the target object is not empty in the local storage and the query result has not timed out, the object storage gateway can send the query result for the target object in the local storage to the terminal device.

[0100] For example, if If the query result for the target object is not empty and has not timed out in local storage, it means that the object storage gateway has available query results for the target object in its local storage, and there is no need to retrieve the query results for the target object from the object storage server. In this case, the object storage gateway can directly retrieve the query results for the target object from its local storage. Send to the terminal device.

[0101] In some embodiments, if the query result status indicates that the query result for the target object is not empty in local storage and the query result has timed out, the object storage gateway can send an update request for the target object to the object storage server. Subsequently, the object storage gateway can receive update information for the target object from the object storage server and update the query result for the target object based on this update information. Then, the object storage gateway can send the updated query result for the target object to the terminal device.

[0102] For example, if If the query result for the target object exists in the local storage but has timed out, it means that the query result for the target object exists in the local storage of the object storage gateway but has timed out and needs to be updated. In this case, the object storage gateway can send an update request for the target object to the object storage server, and then update the query result for the target object in the local storage based on the update information sent by the object storage server. After the update is performed, it is then sent to the terminal device. The update request can be a Head Object Request (Head Object Request).

[0103] The object query method provided in this application combines a single query request into a group query request and uses the results to deal with potential subsequent sequential query requests, thereby reducing the delay time of object query.

[0104] The following explains how to determine the integrity of directory objects.

[0105] In some embodiments, after receiving the query results of an object group from the object storage server, the object storage gateway can update the directory objects in the integrity directory list and determine the check results of the directory objects based on the query results of the object group. Subsequently, the object storage gateway updates the enumeration status of the directory objects based on the check results of the directory objects.

[0106] The target types of different directory objects are different.

[0107] For example, after the object storage gateway receives the query results of the object group sent by the object storage server, it can record each object in the object group as... The list of objects in the object group is denoted as ,but , Because the object storage query interface returns a contiguous list of objects in strict lexicographical order, it can... The key is recorded as ,but , After receiving the query results for an object group, the object storage gateway processes the object records of each new directory object. At that time, will directory objects ( Adding it to the integrity catalog list (CheckSealList) to update the integrity catalog list will then... in, .

[0108] For example, the directory objects in the integrity directory list can be checked. If the checked directory object is not the current directory object or an ancestor directory of the current directory, it indicates that all objects under the checked directory have been listed, satisfying the integrity judgment condition. If the listed status of the checked directory object is "incomplete", it is changed to "complete".

[0109] For example, once the entire object group returned in this query has been enumerated, the process begins processing the directory objects in the directory list to be checked for completeness. If a directory object meets the "complete" enumeration status or the returned results of this enumeration have not been truncated (i.e., all objects with object keys greater than the starting point of the enumeration have been enumerated), and is not an ancestor directory of the current directory, then the directory object is marked as enumerated complete, and the current time is recorded. When a subsequent query hits a complete directory object that has not timed out, there is no need to call the object storage interface again; the query results recorded in local storage can be returned directly, thereby reducing the number of object query requests and improving query speed.

[0110] The object query method provided in this application marks the folders that have been fully listed in the directory query. When a subsequent directory query request hits the listed directory, the local cached results can be used directly, reducing the number of query requests that repeatedly list the same folder.

[0111] The following section explains the interval locking marker implemented using the downloaded gap list.

[0112] In some embodiments, after receiving the query results of the object group sent by the object storage server, the object storage gateway can generate the lexicographical interval corresponding to the object group and update the list of downloaded gaps according to the lexicographical interval corresponding to the object group.

[0113] The starting node of the lexicographical interval corresponding to the object group includes the identifier of the starting object of the object group, the ending node of the lexicographical interval corresponding to the object group includes the identifier of the ending object of the object group, and the timestamp of the lexicographical interval corresponding to the object group is the query timestamp of the object group.

[0114] It should be understood that in the embodiments of this application, any query from the object storage server (including queries triggered by folder listing and queries triggered by a single object) can generate a lexicographical interval and update the list of downloaded gaps, regardless of the size of the query range.

[0115] For example, the identifier of the starting object in the ObjList returned by a query is... The identifier of the end object is As shown in formula (1), this query will be added to the downloaded gap list of the object storage gateway. The new lexicographical interval is denoted as .

[0116] (1)

[0117] in, , The timestamp of the lexicographical interval (i.e., the query timestamp of the object group) is used to determine whether the identifier of the object locked in the lexicographical interval has expired.

[0118] In some embodiments, the object storage gateway can add the lexicographical interval corresponding to the object group to the downloaded gap list and update the existing lexicographical interval based on the overlap between the lexicographical interval corresponding to the object group and the existing lexicographical interval in the downloaded gap list.

[0119] In some embodiments, if the left portion of an existing lexicographical interval overlaps with the lexicographical interval corresponding to an object group, the object storage gateway can update the starting node of the existing lexicographical interval; if the right portion of an existing lexicographical interval overlaps with the lexicographical interval corresponding to an object group, the object storage gateway can update the ending node of the existing lexicographical interval; if the middle portion of an existing lexicographical interval overlaps with the lexicographical interval corresponding to an object group, the object storage gateway can segment the existing lexicographical interval; if an existing lexicographical interval is completely covered by the lexicographical interval corresponding to an object group, the object storage gateway can delete the existing lexicographical interval.

[0120] For example, the object storage gateway can iterate through each existing lexicographical interval in the list of downloaded gaps and update the existing lexicographical intervals based on the lexicographical interval corresponding to the newly added object group. If there is an existing lexicographical interval... The left part is the lexicographical range corresponding to the newly added object group. If there is overlap, the existing lexicographical interval can be updated as shown in formula (2). The starting node.

[0121] (2)

[0122] For example, if a lexicographical range already exists... The right side is the lexicographical range corresponding to the newly added object group. If there is overlap, the existing lexicographical interval can be updated as shown in formula (3). The last node.

[0123] (3)

[0124] For example, if a lexicographical range already exists The middle part is the lexicographical range corresponding to the newly added object group. If there is overlap, then the existing lexicographical intervals can be divided as shown in formula (4). Divide into segments.

[0125] (4)

[0126] For example, if a lexicographical range already exists... The lexicographical range corresponding to the newly added object group For complete coverage, the existing lexicographical intervals can be divided as shown in formula (5). Delete it.

[0127] (5)

[0128] in, Given an existing lexicographically ordered interval. This refers to the newly added lexicographically ordered intervals after segmentation. For the lexicographical range corresponding to the newly added object group, This is the starting node before the existing lexicographical range is updated. This is the starting node before the existing lexicographical range is updated. This is the starting node of the lexicographical interval corresponding to the newly added object group. This is the last node of the lexicographical interval corresponding to the newly added object group. The timestamps for an existing lexicographically ordered interval. The timestamp of the lexicographical interval corresponding to the newly added object group.

[0129] In some embodiments, the object storage gateway can query the list of downloaded gaps to identify the target object to be queried and determine the query result status of the target object in the local storage of the object storage gateway.

[0130] For example, when the object storage gateway receives the identifier of a target object to be queried... At that time, the first judgment will be made The criteria are determined by whether the interval is within the lexicographical range of the downloaded interval list. If it exists, it contains... lexicographical intervals Then prove All objects within have been queried and stored in local storage. At this point, only a lookup in local storage is needed. The corresponding query results. If found, the results can be returned directly without sending a query request to the object storage.

[0131] For example, in determining Insertion position and judgment If the condition does not exist, binary search or similar methods can be used to speed it up. The corresponding operation is completed in a time complexity equal to that of the target object storage gateway. Furthermore, the object storage gateway does not need to periodically clean up expired invalid data in the downloaded interval list; instead, it uses lazy deletion, only deleting data when a query request falls within the interval. Only then will it be based on Check if the cleanup has exceeded the time limit.

[0132] The object query method provided in this application accelerates the processing speed of subsequent query requests by recording the lexicographical range covered by the read request of each object group. By utilizing the lexicographical nature of object storage returning objects, query requests for non-existent objects falling within the range can be returned directly without calling the query interface of object storage, which greatly reduces the number of network requests.

[0133] The object query method provided in this application embodiment receives an object query request sent by a terminal device, the object query request including the identifier of the target object to be queried; determines the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried; if the query result status is that the query result of the target object is empty in the local storage, sends a read request for an object group to the object storage server, the object group including a consecutive target number of objects, the starting object of the object group being the target object; receives the query result of the object group sent by the object storage server, the query result of the object group including the query result of the target object; stores the query result of the object group in the local storage, and sends the query result of the target object to the terminal device. Because the query for a single target object is expanded into a query for an object group when the query result of the target object is empty in the local storage, subsequent queries for the object group do not need to call the object storage interface again, thereby greatly reducing the object query latency.

[0134] Figure 3A flowchart illustrating another object query method provided in this application embodiment is shown below. Figure 3 As shown, this method is applied to Figure 1 The following explanation uses the object storage gateway as an example, including S301 to S316. Among them:

[0135] S301. Receive an object query request sent by the terminal device. The object query request includes the identifier of the target object to be queried.

[0136] S302. Based on the identifier of the target object to be queried, determine the query result status of the target object in the local storage of the object storage gateway.

[0137] S303. Determine whether the query results for the target object are empty in local storage.

[0138] If yes, then execute S304; otherwise, execute S311.

[0139] S304. Send a read request for an object group to the object storage server. The object group includes a target number of consecutive objects, with the target object being the starting object of the object group.

[0140] S305. Receive the query results of the object group sent by the object storage server. The query results of the object group include the query results of the target object.

[0141] S306. Store the query results of the object group in local storage and send the query results of the target object to the terminal device.

[0142] S307. Generate the lexicographical interval corresponding to the object group.

[0143] S308. Update the list of downloaded gaps based on the lexicographical intervals corresponding to the object group.

[0144] S309. Based on the query results of the object group, update the directory objects in the integrity directory list and determine the inspection results of the directory objects.

[0145] S310. Update the enumeration status of the directory objects based on the inspection results of the directory objects.

[0146] S311. Determine whether the query result timeout has occurred.

[0147] If yes, then execute S312; otherwise, execute S316.

[0148] S312. Send an update request for the target object to the object storage server.

[0149] S313, Receive update information of the target object sent by the object storage server.

[0150] S314. Update the query results of the target object based on the updated information of the target object.

[0151] S315. Send the updated query results for the target object to the terminal device.

[0152] S316. Send the query results of the target object in local storage to the terminal device.

[0153] Figure 4 This is a schematic diagram of object bucket data provided in an embodiment of this application, to... Figure 4 For example, the following explains how to use object query methods, through single query optimization acceleration technology, folder object integrity judgment technology, and range locking marking technology, to improve the object query performance of the object storage gateway.

[0154] First, the user queries objects A / file0400 to A / file0500 in the object bucket in sequence.

[0155] For example, a user first sends an object query request with object identifier A / file0400 to the object storage gateway via a terminal device. Since the query results for A / file0400 are not present in the local storage of the object storage gateway, the object storage gateway can then send a read request to the object storage server for the object group starting with object A / file0400. The object storage server returns the query results for the object group, including the query results for 1000 consecutive objects. That is: ObjList=[A / file0400,…,A / file0499,A / folder01,A / folder01 / file0000,…,A / folder01 / file0499,A / folder02,A / folder02 / file0000,…,A / folder02 / file0397].

[0156] For example, the object storage gateway generates a lexicographical interval based on the query results of the object group, and uses the lexicographical interval to update the list of downloaded gaps. According to the interval locking tagging technique, the updated lexicographical interval in the list of downloaded gaps is LoadedGapList=[([A / file0400,A / folder02 / file0397], After processing, the object storage gateway will return the query results for object A / file0400 queried by the user.

[0157] For example, the user continues to send object query requests with object identifiers A / file0401 to A / file0499 sequentially to the object storage gateway via the terminal device. Since the object keys of A / file0401 to A / file0499 all fall within... The timeout period has not expired. Therefore, there's no need to send a request to object storage; the query results from local storage can be returned directly. If the query result for the object does not exist locally, the object can be returned as not existing.

[0158] Secondly, the user queries objects B / file0400 to B / file0500 in the object bucket in sequence.

[0159] For example, a user first sends an object query request with object identifier B / file0400 to the object storage gateway via a terminal device. Since objects B / file0400 to B / file0500 are not located in the specified object storage gateway... Within any interval, a read request needs to be sent to the object storage server for an object group starting with object B / file0400. The object storage server returns the query results for the object group, including the query results for 1000 consecutive objects. That is: ObjList=[B / file0400,…,B / file0499,B / folder01,B / folder01 / file0000,…,B / folder01 / file0499,B / folder02,B / folder02 / file0000,…,B / folder02 / file0397].

[0160] For example, the object storage gateway generates a lexicographical interval based on the query results of the object group, and uses the lexicographical interval to update the list of downloaded gaps. According to the interval locking tagging technique, the updated lexicographical interval in the list of downloaded gaps is LoadedGapList=[([A / file0400,A / folder02 / file0397], ),([B / file0400,B / folder02 / file0397], ],in After processing, the object storage gateway will return the query results for object B / file0400 queried by the user.

[0161] For example, the user continues to send object query requests with object identifiers B / file0401 to B / file0499 sequentially to the object storage gateway via the terminal device. Since the object keys of B / file0401 to B / file0499 all fall within... The timeout period has not expired. Therefore, there's no need to send a request to object storage; the query results from local storage can be returned directly. If the query result for the object does not exist locally, the object can be returned as not existing.

[0162] Next, the user queries objects A / folder02 / file0400 to A / folder02 / file0499 in the object bucket in sequence.

[0163] For example, a user first sends an object query request with object identifier A / folder02 / file0400 to the object storage gateway via a terminal device. Since objects A / folder02 / file0400 to A / folder02 / file0499 are not located in the specified object storage gateway... Within any interval, a read request needs to be sent to the object storage server for an object group starting with object A / folder02 / file0400. The object storage server returns the query results for the object group, including the query results for 1000 consecutive objects. That is: ObjList=[A / folder02 / file0400,…,A / folder02 / file0499,B,B / file0000,…,B / file0499,B / folder01,B / folder01 / file0000,…,B / folder01 / file0397].

[0164] For example, the object storage gateway generates a lexicographical interval based on the query results of the object group, and uses the lexicographical interval to update the list of downloaded gaps. Due to the newly added... With the original There is an overlapping part, therefore... The left boundary is updated, and the updated loaded object range is: LoadedGapList = [([A / file0400,A / folder02 / file0397],Time1),([A / folder02 / file0400,B / folder01 / file0397],Time3),([B / folder01 / file0397,B / folder02 / file0397],Time2)], where After processing, the object storage gateway will return the query results for object A / folder02 / file0400 that the user queried.

[0165] For example, the user continues to send object query requests sequentially from object identifiers A / folder02 / file0401 to A / folder02 / file0401 to the object storage gateway via the terminal device. Since the object keys of A / folder02 / file0401 to A / folder02 / file0401 all fall within... The timeout period has not expired. Therefore, there's no need to send a request to object storage; the query results from local storage can be returned directly. If the query result for the object does not exist locally, the object can be returned as not existing.

[0166] Finally, the user accesses the C directory. For example, if the query results for objects in the C directory are not available in local storage, the object storage gateway triggers a read request for the object group, and the object storage server returns a query result of 1000 consecutive objects. That is: ObjList=[C,C / file0000,…,C / file0099,C / folder01,C / folder01 / file0000,…,C / folder01 / file0099,C / folder02,C / folder02 / file0000,C / folder02 / file0099,D,D / file0000,…,D / file0499,D / folder01,D / folder01 / file0000,…,D / folder01 / file0194].

[0167] For example, based on the folder object integrity judgment technology, the directory objects to be checked are added to the integrity directory list in sequence, i.e.: CheckSealList=[C,C / folder01,C / folder02,D,D / folder01]. The directory objects in the integrity directory list to be checked are processed according to the directory integrity judgment conditions, and a directory list that can be marked as completed can be obtained: SealList=[C,C / folder01,C / folder02]. When a user subsequently requests access to the C / folder01 and C / folder02 directories, the local result can be returned directly if no timeout occurs.

[0168] It should be understood that in related technologies, querying objects A / file0400 to A / file0500 requires sending 101 query requests to the object storage server and processing query results for 100 newly added returned objects. However, the object query method provided in this application only requires sending one read request for each object group to the object storage server and processing query results for 1000 newly added returned objects. Similarly, in related technologies, querying objects B / file0400 to B / file0500 requires sending 101 query requests to the object storage server and processing query results for 100 newly added returned objects. In contrast, the object query method provided in this application only requires sending one read request for each object group to the object storage server and processing query results for 1000 newly added returned objects. In related technologies, querying objects A / folder02 / file0400 to A / folder02 / file0499 requires sending 100 query requests to the object storage server and processing 100 new returned object query results. However, the object query method provided in this application only requires sending one read request for each object group to the object storage server, processing 501 new returned object query results, and updating 499 local query results. Since the time spent processing data locally is much less than the time spent on network requests, using the object query method provided in this application to reduce the number of network requests is a very effective way to improve system performance. The optimization effect is even more significant when the range of sequential queries is larger, or when the query object is an object that does not exist within the range.

[0169] It should be understood that before optimization, querying objects in the C directory required sending three query requests to the object storage server, while after optimization, only one query request is needed. The optimization effect is more significant when the target bucket has a deep directory hierarchy and a large number of folders.

[0170] The object query method provided in this application reduces the number of query requests sent to the object storage server from the underlying logic, reduces the number of interactions between the object storage gateway and the object storage server, significantly improves the speed and efficiency of object querying by the object storage gateway, and optimizes the user experience. The performance improvement is particularly noticeable when reading folders containing a large number of objects or querying non-existent objects.

[0171] The object query method provided in this application embodiment receives an object query request sent by a terminal device, the object query request including the identifier of the target object to be queried; determines the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried; if the query result status is that the query result of the target object is empty in the local storage, sends a read request for an object group to the object storage server, the object group including a consecutive target number of objects, the starting object of the object group being the target object; receives the query result of the object group sent by the object storage server, the query result of the object group including the query result of the target object; stores the query result of the object group in the local storage, and sends the query result of the target object to the terminal device. Because the query for a single target object is expanded into a query for an object group when the query result of the target object is empty in the local storage, subsequent queries for the object group do not need to call the object storage interface again, thereby greatly reducing the object query latency.

[0172] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0173] Based on the same inventive concept, this application also provides an object query apparatus for implementing the object query method described above. The solution provided by this apparatus is similar to the implementation scheme described in the above method; therefore, the specific limitations in one or more object query apparatus embodiments provided below can be found in the limitations of the object query method described above, and will not be repeated here.

[0174] In one exemplary embodiment, such as Figure 5 As shown, an object query device 400 is provided, including: a receiving module 401, a processing module 402, and a sending module 403, wherein:

[0175] The receiving module 401 is used to receive an object query request sent by a terminal device, the object query request including the identifier of the target object to be queried; and to receive the query results of an object group sent by an object storage server, the query results of the object group including the query results of the target object.

[0176] The processing module 402 is used to determine the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried; and to store the query result of the object group in the local storage.

[0177] The sending module 403 is used to send a read request for an object group to the object storage server when the query result status is that the query result of the target object is empty in the local storage. The object group includes a consecutive target number of objects, and the starting object of the object group is the target object; and send the query result of the target object to the terminal device.

[0178] In one embodiment, the sending module 403 is further configured to send an update request for the target object to the object storage server when the query result status is that the query result of the target object is not empty in the local storage and the query result has timed out; and send the updated query result of the target object to the terminal device.

[0179] The receiving module 401 is also used to receive update information of the target object sent by the object storage server;

[0180] The processing module 402 is also used to update the query results of the target object based on the update information of the target object.

[0181] In one embodiment, the sending module 403 is used to send the query result of the target object in the local storage to the terminal device when the query result status is that the query result of the target object is not empty in the local storage and the query result has not timed out.

[0182] In one embodiment, the processing module 402 is further configured to generate a lexicographical interval corresponding to the object group; and update the list of downloaded gaps according to the lexicographical interval corresponding to the object group.

[0183] In one embodiment, the starting node of the lexicographical interval corresponding to the object group includes the identifier of the starting object of the object group, the ending node of the lexicographical interval corresponding to the object group includes the identifier of the ending object of the object group, and the timestamp of the lexicographical interval corresponding to the object group is the query timestamp of the object group.

[0184] In one embodiment, the processing module 402 is further configured to add the lexicographical interval corresponding to the object group to the downloaded gap list and update the existing lexicographical interval based on the overlap relationship between the lexicographical interval corresponding to the object group and the existing lexicographical interval in the downloaded gap list.

[0185] In one embodiment, the processing module 402 is further configured to: update the starting node of the existing lexicographical interval when the left part of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group; update the ending node of the existing lexicographical interval when the right part of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group; segment the existing lexicographical interval when the middle part of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group; and delete the existing lexicographical interval when it is completely covered by the lexicographical interval corresponding to the object group.

[0186] In one embodiment, the timeout update strategy for the downloaded gap list includes a lazy deletion strategy.

[0187] In one embodiment, the processing module 402 is further configured to query the identifier of the target object to be queried in the downloaded gap list and determine the query result status of the target object in the local storage of the object storage gateway.

[0188] In one embodiment, the processing module 402 is further configured to update the directory objects in the integrity directory list and determine the inspection results of the directory objects based on the query results of the object group; and update the enumeration status of the directory objects based on the inspection results of the directory objects.

[0189] In one embodiment, the processing module 402 is further configured to determine the query result status of the target object in the local storage of the object storage gateway based on the enumeration status of the directory objects to which the identifier of the target object belongs.

[0190] Each module in the aforementioned object query device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can call and execute the operations corresponding to each module.

[0191] In one exemplary embodiment, a computer device is provided, which may be an object storage gateway, and its internal structure diagram may be as follows: Figure 6As shown, this computer device includes a processor, memory, input / output interfaces (I / O), and a communication interface. The processor, memory, and I / O interfaces are connected via a system bus, and the communication interface is also connected to the system bus via the I / O interfaces. The processor provides computational and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides the environment for the operating system and computer programs stored in the non-volatile storage media. The database stores data. The I / O interfaces are used for exchanging information between the processor and external devices. The communication interface is used for communicating with external terminals via a network connection. When executed by the processor, the computer program implements an object query method.

[0192] Those skilled in the art will understand that Figure 6 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0193] In one exemplary embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the object query method described above.

[0194] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements an object query method.

[0195] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements an object query method.

[0196] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.

[0197] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.

[0198] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.

[0199] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. An object query method, characterized in that, Applied to an object storage gateway, the method includes: Receive an object query request sent by a terminal device, wherein the object query request includes the identifier of the target object to be queried; Based on the identifier of the target object to be queried, determine the query result status of the target object in the local storage of the object storage gateway; If the query result status indicates that the query result for the target object is empty in the local storage, a read request for an object group is sent to the object storage server. The object group includes a consecutive target number of objects, and the starting object of the object group is the target object. Receive the query results of the object group sent by the object storage server, wherein the query results of the object group include the query results of the target object; The query results of the object group are stored in the local storage, and the query results of the target object are sent to the terminal device.

2. The method according to claim 1, characterized in that, After determining the query result status of the target object in the local storage of the object storage gateway, the method further includes: If the query result status indicates that the query result for the target object is not empty in the local storage and the query result has timed out, an update request for the target object is sent to the object storage server. Receive update information of the target object sent by the object storage server; Update the query results for the target object based on the updated information of the target object; The updated query results for the target object are sent to the terminal device.

3. The method according to claim 1, characterized in that, After determining the query result status of the target object in the local storage of the object storage gateway, the method further includes: If the query result status indicates that the query result for the target object is not empty in the local storage and the query result has not timed out, the query result for the target object in the local storage is sent to the terminal device.

4. The method according to claim 1, characterized in that, After receiving the query results of the object group sent by the object storage server, the method further includes: Generate the lexicographical range corresponding to the object group; Update the list of downloaded gaps based on the lexicographical range corresponding to the object group.

5. The method according to claim 4, characterized in that, The starting node of the lexicographical interval corresponding to the object group includes the identifier of the starting object of the object group, the ending node of the lexicographical interval corresponding to the object group includes the identifier of the ending object of the object group, and the timestamp of the lexicographical interval corresponding to the object group is the query timestamp of the object group.

6. The method according to claim 4, characterized in that, The step of updating the downloaded gap list according to the lexicographical interval corresponding to the object group includes: Based on the overlap between the lexicographical interval corresponding to the object group and the existing lexicographical interval in the downloaded gap list, the lexicographical interval corresponding to the object group is added to the downloaded gap list and the existing lexicographical interval is updated.

7. The method according to claim 6, characterized in that, Updating the existing lexicographical range includes: If the left portion of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group, update the starting node of the existing lexicographical interval. If the right side of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group, update the end node of the existing lexicographical interval. If the middle part of the existing lexicographical interval overlaps with the lexicographical interval corresponding to the object group, the existing lexicographical interval will be segmented. If the existing lexicographical interval is completely covered by the lexicographical interval corresponding to the object group, the existing lexicographical interval is deleted.

8. The method according to claim 4, characterized in that, The timeout update strategy for the downloaded gap list includes a lazy deletion strategy.

9. The method according to claim 4, characterized in that, The step of determining the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried includes: The identifier of the target object to be queried is retrieved from the list of downloaded gaps to determine the query result status of the target object in the local storage of the object storage gateway.

10. The method according to claim 1, characterized in that, After receiving the query results of the object group sent by the object storage server, the method further includes: Based on the query results of the object group, update the directory objects in the integrity directory list and determine the inspection results of the directory objects; Update the enumeration status of the directory object based on the inspection results of the directory object.

11. The method according to claim 10, characterized in that, The step of determining the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried includes: Based on the enumeration status of the directory objects to which the identifier of the target object belongs, determine the query result status of the target object in the local storage of the object storage gateway.

12. An object query device, characterized in that, The device, applied to an object storage gateway, includes: The receiving module is used to receive an object query request sent by a terminal device, wherein the object query request includes the identifier of the target object to be queried; and to receive the query results of an object group sent by an object storage server, wherein the query results of the object group include the query results of the target object. The processing module is used to determine the query result status of the target object in the local storage of the object storage gateway based on the identifier of the target object to be queried; and to store the query result of the object group in the local storage. The sending module is configured to send a read request for an object group to the object storage server when the query result status indicates that the query result for the target object is empty in the local storage. The object group includes a consecutive target number of objects, and the starting object of the object group is the target object. The module then sends the query result for the target object to the terminal device.

13. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 11.

14. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 11.

15. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 11.