Object uploading method and device, electronic equipment and storage medium
By setting up multiple candidate buckets in the object upload system and selecting buckets with better upload service performance for uploading, the problem of large file uploads is solved due to network conditions, and the effect of reducing the chance of upload failure and shortening the upload time is achieved.
Patent Information
- Application Number
- CN202411664611.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-20
- Publication Date
- 2025-03-07
Smart Images

Figure CN119583536A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the technical field of data transmission, and in particular to an object uploading method, device, electronic device and storage medium. Background Art
[0002] With the rapid development of Internet business, the amount of data that companies need to store is increasing day by day. Object Storage Service (OSS) has become the preferred solution for many companies to store data due to its high bandwidth, high concurrency, massive storage capacity, horizontal scalability and economical characteristics. However, in the existing storage methods, the upload of large files is often affected by network conditions, which is manifested as long upload time and low success rate. The long upload time is mainly reflected in the fact that when the network speed suddenly slows down, the upload time will increase significantly and even become unbearable. In addition, occasional jitter in the network may cause upload failure, which means that even if it has been uploaded for a long time, the entire file may have to be re-uploaded due to temporary network problems, which greatly reduces the success rate of upload. These problems seriously affect the user's data access experience and efficiency. Summary of the invention
[0003] In order to solve the above technical problem or at least partially solve the above technical problem, the present disclosure provides an object uploading method, device, electronic device and storage medium.
[0004] In a first aspect, the present disclosure provides an object uploading method, wherein the object uploading system comprises a terminal, a scheduling device, and a plurality of cloud servers; the terminal and the plurality of cloud servers are both communicatively connected to the scheduling device; the object uploading method is executed by the scheduling device; the method comprises:
[0005] receiving an upload request for a target object sent by the terminal;
[0006] Determine a plurality of candidate storage buckets; the plurality of candidate storage buckets are configured in different cloud servers;
[0007] Determine a target bucket and a non-target bucket among the multiple candidate buckets; the upload service performance of the target bucket is better than the upload service performance of the non-target bucket;
[0008] An upload link is established between the target storage bucket and the terminal, so that the terminal uploads the target object to the target storage bucket.
[0009] In a second aspect, the present disclosure further provides an object uploading device, the object uploading system comprising a terminal, a scheduling device and a plurality of cloud servers; the terminal and the plurality of cloud servers are both communicatively connected to the scheduling device; the object uploading device is configured in the scheduling device; the device comprises:
[0010] A request acquisition module, used for receiving an upload request of a target object sent by the terminal;
[0011] A first determination module is used to determine a plurality of candidate storage buckets, where the plurality of candidate storage buckets are configured in different cloud servers;
[0012] A second determination module is used to determine a target storage bucket and a non-target storage bucket from the multiple candidate storage buckets; the upload service performance of the target storage bucket is better than the upload service performance of the non-target bucket;
[0013] The link establishing module is used to establish an upload link between the target storage bucket and the terminal, so that the terminal uploads the target object to the target storage bucket.
[0014] In a third aspect, the present disclosure further provides an electronic device, the electronic device comprising:
[0015] one or more processors;
[0016] A storage device for storing one or more programs;
[0017] When the one or more programs are executed by the one or more processors, the one or more processors implement the object uploading method as described above.
[0018] In a fourth aspect, the present disclosure further provides a computer-readable storage medium having a computer program stored thereon, which implements the object uploading method as described above when executed by a processor.
[0019] Compared with the prior art, the technical solution provided by the embodiments of the present disclosure has the following advantages:
[0020] The technical solution provided by the embodiment of the present disclosure determines multiple candidate storage buckets by setting; the multiple candidate storage buckets are configured in different cloud servers; among the multiple candidate storage buckets, a target storage bucket and a non-target storage bucket are determined; the upload service performance of the target storage bucket is better than the upload service performance of the non-target storage bucket; an upload link is established between the target storage bucket and the terminal so that the terminal uploads the target object to the target storage bucket. Its essence is to no longer bind the user terminal to a single cloud server, but to allow the user terminal to access the storage buckets in multiple cloud servers. When uploading the target object, a storage bucket with better upload service performance is selected from the storage buckets of multiple cloud servers for uploading. Since a storage bucket with better upload service performance is selected, the probability of upload failure can be reduced and the upload time can be shortened. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the present disclosure.
[0022] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
[0023] Figure 1 A structural block diagram of an object uploading system provided by an embodiment of the present disclosure;
[0024] Figure 2 A flowchart of an object uploading method provided by an embodiment of the present disclosure;
[0025] Figure 3 A flowchart of a method for implementing S130 provided in an embodiment of the present disclosure;
[0026] Figure 4 It is a structural schematic diagram of an object uploading device in an embodiment of the present disclosure;
[0027] Figure 5 It is a structural schematic diagram of an electronic device in an embodiment of the present disclosure. DETAILED DESCRIPTION
[0028] In order to more clearly understand the above-mentioned objectives, features and advantages of the present disclosure, the scheme of the present disclosure will be further described below. It should be noted that the embodiments of the present disclosure and the features in the embodiments can be combined with each other without conflict.
[0029] In the following description, many specific details are set forth to facilitate a full understanding of the present disclosure, but the present disclosure may also be implemented in other ways different from those described herein; it is obvious that the embodiments in the specification are only part of the embodiments of the present disclosure, rather than all of the embodiments.
[0030] Figure 1 This is a structural block diagram of an object upload system provided by an embodiment of the present disclosure. Figure 1 The object upload system includes a terminal, a scheduling device, and multiple cloud servers ( Figure 1 The terminal and the plurality of cloud servers are all connected to the scheduling device. The cloud server includes a storage bucket. Figure 1 In the example, only one storage bucket is configured in a cloud server. In practice, one or more storage buckets may be configured in a cloud server.
[0031] The function of the terminal is to generate an upload request under the operation of the user and send the upload request to the scheduling device. The function of the scheduling device is to decide which storage bucket of which cloud server to upload the object to be uploaded to after receiving the user's upload request, that is, to decide which storage bucket of which cloud server to use to provide the object upload service, and to establish a communication link between the terminal and the corresponding storage bucket so that the terminal can upload the object to be uploaded to the storage bucket. A storage bucket is a container for storing objects, like a large folder, in which one or more objects can be placed for unified management. The cloud server is an infrastructure that provides computing and storage resources, which has computing power and storage space. The storage bucket relies on the resources of the cloud server to realize data storage and management. The cloud server provides physical storage space, processing power, and network connection support for the storage bucket.
[0032] In some scenarios, different cloud servers are operated by different cloud storage service providers. When uploading objects to different cloud servers, it means accepting services provided by different cloud storage service providers.
[0033] In some scenarios, the dispatching device can be integrated with the terminal or with a cloud server. Alternatively, the dispatching device can be implemented by a separate server or a server cluster.
[0034] Figure 2 This is a flowchart of an object uploading method provided by an embodiment of the present disclosure. The object uploading method provided by the present application is executed by a scheduling device. Figure 2 , the object upload method includes:
[0035] S110: Receive an upload request for a target object sent by a terminal.
[0036] The target object may be, for example, a file or data block in a storage bucket that a user wishes to upload to a cloud server, which may specifically include one or more of text, image, and video.
[0037] Exemplarily, if the user wants to upload the target object, the user can operate the terminal to generate an upload request indicating uploading the target object, and send the upload request to the scheduling device, so that the scheduling device receives the upload request for the target object sent by the terminal.
[0038] S120, determining a plurality of candidate storage buckets; the plurality of candidate storage buckets are configured in different cloud servers.
[0039] In some scenarios, the scheduling device is connected to multiple cloud servers, each of which is configured with one or more storage buckets. Candidate storage buckets are selected from these storage buckets and can be used to store target objects. Different candidate storage buckets are required to come from different cloud servers. The reason for this setting is that the upload service performance provided by different storage buckets in the same cloud server is often not much different.
[0040] S130. Determine a target bucket and a non-target bucket among multiple candidate buckets; the upload service performance of the target bucket is better than the upload service performance of the non-target bucket.
[0041] The target bucket is the bucket that needs to be used last, and the target object will be uploaded to the target bucket later. The non-target bucket is the candidate bucket other than the target bucket.
[0042] The upload service performance of the target bucket is better than that of the non-target bucket, which means that uploading the target object to the target bucket takes less time and / or has a higher success rate than uploading the target object to the non-target bucket.
[0043] There are many ways to implement this step, and this application does not limit this. For example, see Figure 3 , the implementation method of this step may include:
[0044] S131, obtaining a first historical interaction record and a second historical interaction record; the first historical interaction record is a historical interaction record between the scheduling device and each candidate storage bucket; the second historical interaction record is a historical interaction record between the terminal and each candidate storage bucket.
[0045] The first historical interaction record may be, for example, a record of the interaction between the scheduling device and each candidate storage bucket in the past period of time. These records contain specific details of each interaction, such as request and response timestamps, request types, response status codes, response delays, and other information.
[0046] Furthermore, the first historical interaction record may, for example, refer to the interaction recorded in the process of the scheduling device uploading test data to each candidate storage bucket in the past period of time. In this case, optionally, obtaining the first historical interaction record includes: periodically uploading test data to each candidate storage bucket; in the process of uploading test data, recording the first historical interaction record between the scheduling device and each candidate storage bucket. Here, the test data can be understood as an introduction to obtaining the first historical interaction record, which does not represent the user's actual upload needs. Therefore, it can be set that after the scheduling device uploads the test data, the candidate storage bucket does not store the test data, but directly discards the test data. Optionally, the first historical interaction record includes upload result information for the test data, and / or upload time-consuming information; the upload result information is used to reflect whether the test data has been uploaded successfully.
[0047] The second historical interaction record may, for example, refer to a record of the interaction between the terminal and each candidate storage bucket in the past period of time. These records contain specific details of each interaction, such as request and response timestamps, request types, response status codes, response delays, and other information. In this case, the information recorded in the process of uploading data in response to the user's upload request before the current moment can be used as a historical interaction record. In other words, the second historical interaction record may be a historical interaction record formed by uploading data based on the user's actual upload needs. In some embodiments, the second historical interaction record includes upload result information for the historically uploaded object, and / or upload time-consuming information; the upload result information is used to reflect whether the historically uploaded object has been successfully uploaded.
[0048] S132. Periodically determine the reliability score of each candidate storage bucket based on the first historical interaction record and / or the second historical interaction record; the reliability score is used to characterize the superiority of the upload service performance of the corresponding candidate storage bucket.
[0049] There are many methods for implementing this step, and this application does not impose any restrictions on this. By way of example, in some scenarios, the return success rate and return delay of each candidate storage bucket can be determined based on the first historical interaction record and / or the second historical interaction record; based on the return success rate and return delay of each candidate storage bucket, the reliability score of each candidate storage bucket can be periodically determined.
[0050] The return success rate refers to the proportion of requests that return a successful status code within a preset time. The return latency refers to the length of time from sending a request to receiving the response header information.
[0051] As time goes by, the first historical interaction record and the second historical interaction record are continuously updated and generated. Therefore, the reliability scores of the current candidate storage buckets can be periodically updated according to these historical interaction records. This ensures that at any time, the reliability score of the candidate storage bucket can accurately reflect the current upload service performance of the candidate storage bucket.
[0052] Optionally, the reliability score of each candidate storage bucket is updated based on the first historical interaction record and / or the second historical interaction record in combination with the most recently calculated reliability score of each candidate storage bucket.
[0053] In some scenarios, for any candidate storage bucket, assuming that the reliability score of the candidate storage bucket is updated once every time interval t, the time of the i-th update is recorded as t0, and at the i-th update time, the reliability score of the candidate storage bucket is W(i), which can be obtained based on the following formula:
[0054] W(i)=W 成功 +W 时延 +W(i-1)
[0055]
[0056]
[0057] Where N represents the number of visits to the candidate bucket during the period from t0-t to t0, n represents the number of failed requests to the candidate bucket during the period from t0-t to t0, M represents the average access delay of the candidate bucket during the period from t0-t to t0, m represents the average access delay of all candidate buckets during the period from t0-t to t0, and W(i-1) represents the reliability score of the candidate bucket at the i-1th update time.
[0058] Among them, when calculating the reliability score of the candidate storage bucket at the next update time, the reliability score of the candidate storage bucket obtained at the previous update time is used, which can reduce the drastic fluctuation of the reliability score caused by accidental events, making its changes smoother and more stable, which is conducive to more accurate evaluation of the upload service performance of each candidate storage bucket.
[0059] S133: Determine a target bucket and a non-target bucket from among multiple candidate buckets based on the reliability score of each candidate bucket.
[0060] It is possible to set the candidate storage buckets with reliability scores greater than a set threshold as target storage buckets, and the candidate storage buckets with reliability scores less than or equal to the set threshold as non-target storage buckets. In practice, the threshold can be specified according to actual needs, and this application does not limit its specific value.
[0061] Alternatively, the candidate storage bucket with the largest reliability score may be set as the target storage bucket, and the remaining candidate storage buckets may be set as non-target storage buckets.
[0062] S140: Establish an upload link between the target storage bucket and the terminal, so that the terminal uploads the target object to the target storage bucket.
[0063] In some scenarios, the scheduling device stores access configuration information of each storage bucket connected to it. The access configuration information of the storage bucket may include the domain name of the storage bucket, access key (AccessKey), and secret key (SecretKey) and other information. After determining the target storage bucket, the scheduling device may return the access configuration information of the target storage bucket to the terminal, so that the terminal can establish an upload link with the target storage bucket based on the access configuration information of the target storage bucket.
[0064] For example, see Figure 1 , assuming that the scheduling device is in communication connection with three storage buckets, which are storage bucket 1, storage bucket 2, and storage bucket 3. The three storage buckets are configured in different cloud servers. The access method of the storage bucket can be stored in the scheduling device in the manner of Table 1.
[0065] Table 1
[0066] Bucket domain name Access Key Secret Key Bucket 1 www.a.com Access Key 1 Secret Key 1 Bucket 2 www.b.com Access Key 2 Secret Key 2 Bucket 3 www.c.com Access Key 3 Secret Key 3
[0067] The above technical solution determines multiple candidate buckets by setting; multiple candidate buckets are configured in different cloud servers; among the multiple candidate buckets, a target bucket and a non-target bucket are determined; the upload service performance of the target bucket is better than the upload service performance of the non-target bucket; an upload link is established between the target bucket and the terminal so that the terminal can upload the target object to the target bucket. Its essence is to no longer bind the user terminal to a single cloud server, but to allow the user terminal to access the buckets in multiple cloud servers. When uploading the target object, a bucket with better upload service performance is selected from the buckets of multiple cloud servers for uploading. Since a bucket with better upload service performance is selected, the probability of upload failure can be reduced and the upload time can be shortened.
[0068] On the basis of the above technical solution, optionally, the method may further include: in the process of uploading the target object to the target storage bucket by the terminal, monitoring whether the upload status of the current target object meets the upload exception condition; the upload exception condition includes receiving a prompt message from the storage bucket that the current target object has not been uploaded successfully, and / or the upload time of the current target object reaches a preset time length; if it is monitored that the upload status of the current target object meets the upload exception condition, executing S130 and S140 again.
[0069] The preset duration is an indicator to measure whether the target object upload time is too long. This application does not limit its specific value. If the target object upload time reaches the preset duration, it means that the purpose of quickly uploading the target object may not be achieved due to poor network conditions and other reasons.
[0070] The following are examples, see Figure 1 , if the scheduling device initially determines that the upload service performance of bucket 1 is better than the upload service performance of bucket 2 and bucket 3 after receiving the upload request for the target object. At this time, an upload link is established between the terminal and bucket 1 to upload the target object. However, at a certain moment in the process of uploading the target object, it is monitored that the upload status of the target object meets the upload abnormality condition, and the upload service performance of each bucket is re-determined. During the second determination, it is found that the upload service performance of bucket 2 is better than the upload service performance of bucket 1 and bucket 3. At this time, an upload link is established between the terminal and bucket 2, and the target object is uploaded again from the beginning.
[0071] The purpose of this setting is that when the upload of the target object is abnormal, no prompt information such as upload failure is fed back to the user, but the storage bucket is automatically switched to continue uploading, thereby reducing the frequency of feedback of upload failure information to the user, allowing the user to automatically complete the upload of the entire target object without any perception, and improving the upload success rate perceived by the user.
[0072] Based on the above technical solutions, optionally, the method may also include: in response to an upload request for the target object, decomposing the target object into multiple sub-objects; S130 may include: for any sub-object, determining a target storage bucket corresponding to the sub-object from multiple candidate storage buckets; and the terminal subsequently uploading the corresponding sub-object to the target storage bucket.
[0073] When decomposing a target object into multiple sub-objects, the decomposition may be performed based on file size, internal logic of the target object, and the like.
[0074] Exemplarily, the size of the sub-object is set to 4 MB. If the file size of a target object is 12 MB, the target object can be decomposed into three sub-objects: 0 to 4 MB, 4 MB to 8 MB, and 8 MB to 12 MB.
[0075] The essence of this setting is to decompose the upload task of a target object into multiple upload tasks for sub-objects. Each upload task for a sub-object can be uploaded separately. During the upload process, the upload tasks of each sub-object do not interfere with each other, which can improve the flexibility of uploading.
[0076] During the upload process, you can determine only one target bucket at a time, and upload each sub-object to the same target bucket. You can also determine multiple target buckets at a time, and each sub-object is assigned to be uploaded to a different target bucket. In addition, multiple sub-objects can be uploaded serially or in parallel.
[0077] If multiple sub-objects are uploaded in parallel, the overall time spent on uploading the target object can be further reduced.
[0078] Furthermore, the method may also include: in the process of the terminal uploading the corresponding sub-object to the target storage bucket, monitoring whether the current upload status of each sub-object meets the upload exception condition; the upload exception condition includes receiving a prompt message indicating that the current corresponding sub-object has not been uploaded successfully, and / or the current sub-object upload takes a preset time; if it is monitored that the upload status of any sub-object meets the upload exception condition, for the sub-object, re-determine the target storage bucket corresponding to the sub-object from multiple candidate storage buckets; establish an upload link between the re-determined target storage bucket and the terminal; so that the terminal subsequently uploads the corresponding sub-object to the re-determined target storage bucket.
[0079] Specifically, during the upload of each sub-object, monitor whether the current upload status of each sub-object meets the upload exception conditions; if it is monitored that the current upload status of a sub-object meets the upload exception conditions, re-determine the target storage bucket for the sub-object, establish an upload link between the terminal and the newly determined target storage bucket, and re-upload the sub-object from the beginning. In this way, when a small number of sub-objects are uploaded abnormally, it is not necessary to upload all sub-objects, which can further shorten the upload time. This setting can automatically switch the storage bucket to continue uploading when a sub-object is uploaded abnormally, thereby reducing the frequency of feedback to the user on upload failures, allowing the user to automatically complete the upload of the entire target object without any perception, and improving the user-perceived upload success rate.
[0080] Furthermore, after each of the sub-objects is successfully uploaded, a storage record of the target object is formed, and the storage record includes the corresponding relationship between the target object and the sub-object, and the corresponding relationship between the sub-object and the storage bucket. The sub-object has a corresponding relationship with the storage bucket storing the sub-object. The reason for this setting is that in practice, there may be a situation where multiple sub-objects are uploaded to different storage buckets. If the user needs to download the target object later, it is convenient to trace the source.
[0081] Exemplarily, the correspondence between the target object and the sub-object, and the correspondence between the sub-object and the storage bucket may be recorded in the form of Table 2.
[0082] Table 2
[0083]
[0084] The storage records of the target object can be stored in the scheduling device to facilitate subsequent query during download.
[0085] Furthermore, the method may also include: receiving a download request for a target object sent by the terminal; determining, based on the storage record, a storage bucket where each of the sub-objects constituting the target object is located;
[0086] A download link is established between the storage bucket storing the sub-object and the terminal, so that the terminal downloads the sub-object from the storage bucket storing the sub-object; the terminal is also used to combine the sub-objects corresponding to the target object to obtain the target object. This setting can ensure that the target object finally obtained is complete and has no missing information.
[0087] It should be noted that, for the above-mentioned method embodiments, for the sake of simplicity, they are all described as a series of action combinations, but those skilled in the art should know that the present invention is not limited by the described action sequence, because according to the present invention, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present invention.
[0088] Figure 4 Schematic diagram of the structure of an object upload device in an embodiment of the present disclosure. The object upload device provided in the embodiment of the present disclosure can be configured in the scheduling device in the object upload system provided in the present application. Figure 4 , the object uploading device specifically includes:
[0089] A request acquisition module 310, configured to receive an upload request for a target object sent by the terminal;
[0090] A first determination module 320 is used to determine a plurality of candidate storage buckets; the plurality of candidate storage buckets are configured in different cloud servers;
[0091] A second determination module 330 is used to determine a target storage bucket and a non-target storage bucket from the multiple candidate storage buckets; the upload service performance of the target storage bucket is better than the upload service performance of the non-target bucket;
[0092] The link establishing module 340 is used to establish an upload link between the target storage bucket and the terminal, so that the terminal uploads the target object to the target storage bucket.
[0093] Furthermore, the second determining module is used to:
[0094] Acquire a first historical interaction record and a second historical interaction record; the first historical interaction record is a historical interaction record between the scheduling device and each of the candidate storage buckets; the second historical interaction record is a historical interaction record between the terminal and each of the candidate storage buckets;
[0095] Periodically determining a reliability score of each candidate storage bucket based on the first historical interaction record and / or the second historical interaction record; the reliability score is used to characterize the superiority of the upload service performance of the corresponding candidate storage bucket;
[0096] Based on the reliability scores of the candidate buckets, a target bucket and a non-target bucket are determined among the multiple candidate buckets.
[0097] Furthermore, the second determining module is used to:
[0098] Determine a return success rate and a return delay of each of the candidate storage buckets based on the first historical interaction record and / or the second historical interaction record;
[0099] Based on the return success rate and return delay of each candidate storage bucket, the reliability score of each candidate storage bucket is periodically determined.
[0100] Furthermore, the second determining module is used to:
[0101] Periodically uploading test data to each of the candidate storage buckets;
[0102] In the process of uploading the test data, a first historical interaction record between the scheduling device and each of the candidate storage buckets is recorded; the first historical interaction record includes upload result information for the test data, and / or upload time consuming information; the upload result information is used to reflect whether the test data is uploaded successfully. .
[0103] Furthermore, the device also includes a decomposition module, which is used to:
[0104] In response to an upload request for a target object, decomposing the target object into a plurality of sub-objects;
[0105] The second determination module is used to: determine, for any of the sub-objects, a target storage bucket corresponding to the sub-object from among the multiple candidate storage buckets; and the terminal subsequently uploads the sub-object corresponding to the target storage bucket.
[0106] Furthermore, the multiple sub-objects are uploaded in parallel.
[0107] Furthermore, the device also includes a retransmission module, which is used to:
[0108] In the process of uploading the corresponding sub-objects to the target storage bucket, monitoring whether the current upload status of each sub-object meets the upload abnormality condition; the upload abnormality condition includes receiving a prompt message indicating that the current corresponding sub-object has not been successfully uploaded, and / or the current upload time of the sub-object reaches a preset time length;
[0109] If it is monitored that the upload status of any of the sub-objects meets the upload exception condition, for the sub-object, the target storage bucket corresponding to the sub-object is re-determined from the multiple candidate storage buckets; an upload link is established between the re-determined target storage bucket and the terminal; so that the terminal can subsequently upload the corresponding sub-object to the re-determined target storage bucket.
[0110] Furthermore, the device also includes a recording module, which is used to:
[0111] After each of the sub-objects is successfully uploaded, a storage record of the target object is formed, and the storage record includes a corresponding relationship between the target object and the sub-objects, and a corresponding relationship between the sub-objects and the storage buckets.
[0112] Furthermore, the device also includes a download module, which is used to:
[0113] receiving a download request for a target object sent by the terminal;
[0114] Based on the storage record, determining the storage bucket where each of the sub-objects constituting the target object is located;
[0115] A download link is established between the storage bucket storing the sub-object and the terminal, so that the terminal downloads the sub-object from the storage bucket storing the sub-object; the terminal is also used to combine the sub-objects corresponding to the target object to obtain the target object.
[0116] The object uploading device provided in the embodiment of the present disclosure can execute the steps in the object uploading method provided in the method embodiment of the present disclosure, and has the same or corresponding beneficial effects, which will not be repeated here.
[0117] Figure 5 Schematic diagram of the structure of an electronic device in the embodiment of the present disclosure. Figure 5 , which shows a schematic diagram of the structure of an electronic device 1000 suitable for implementing the embodiment of the present disclosure. The electronic device 1000 in the embodiment of the present disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), vehicle terminals (such as vehicle navigation terminals), wearable electronic devices, etc., and fixed terminals such as digital TVs, desktop computers, smart home devices, etc. Figure 5 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0118] like Figure 5 As shown, the electronic device 1000 may include a processing device (e.g., a central processing unit, a graphics processor, etc.) 1001, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1002 or a program loaded from a storage device 1008 to a random access memory (RAM) 1003 to implement the object upload method of the embodiment described in the present disclosure. In the RAM 1003, various programs and information required for the operation of the electronic device 1000 are also stored. The processing device 1001, the ROM 1002, and the RAM 1003 are connected to each other via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.
[0119] Typically, the following devices may be connected to the I / O interface 1005: an input device 1006 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 1007 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 1008 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 1009. The communication device 1009 may allow the electronic device 1000 to communicate with other devices wirelessly or by wire to exchange information. Although Figure 5 The electronic device 1000 is shown with various devices, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead.
[0120] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a non-transitory computer-readable medium, and the computer program contains a program code for executing the method shown in the flowchart, thereby implementing the object upload method as described above. In such an embodiment, the computer program can be uploaded and installed from the network through the communication device 1009, or installed from the storage device 1008, or installed from the ROM 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the method of the embodiment of the present disclosure are executed.
[0121] It should be noted that the computer-readable medium disclosed above may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include an information signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable program code. This propagated information signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0122] In some embodiments, the client and the server may communicate using any known or future developed network protocol such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital information communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any known or future developed network.
[0123] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated into the electronic device.
[0124] The computer-readable medium carries one or more programs. When the one or more programs are executed by the electronic device, the electronic device:
[0125] receiving an upload request for a target object sent by the terminal;
[0126] Determine a plurality of candidate storage buckets; the plurality of candidate storage buckets are configured in different cloud servers;
[0127] Determine a target bucket and a non-target bucket among the multiple candidate buckets; the upload service performance of the target bucket is better than the upload service performance of the non-target bucket;
[0128] An upload link is established between the target storage bucket and the terminal, so that the terminal uploads the target object to the target storage bucket.
[0129] Optionally, when the above one or more programs are executed by the electronic device, the electronic device may also execute other steps described in the above embodiments.
[0130] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages or a combination thereof, including, but not limited to, object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0131] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0132] The units involved in the embodiments described in the present disclosure may be implemented by software or hardware, wherein the name of a unit does not, in some cases, limit the unit itself.
[0133] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.
[0134] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0135] According to one or more embodiments of the present disclosure, the present disclosure provides an electronic device, including:
[0136] one or more processors;
[0137] A memory for storing one or more programs;
[0138] When the one or more programs are executed by the one or more processors, the one or more processors implement any object uploading method provided in the present disclosure.
[0139] According to one or more embodiments of the present disclosure, the present disclosure provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements any object uploading method provided by the present disclosure.
[0140] The embodiment of the present disclosure also provides a computer program product, which includes a computer program or instructions, and when the computer program or instructions are executed by a processor, the object uploading method described above is implemented.
[0141] It should be noted that, in this article, relational terms such as "first" and "second" are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.
[0142] The above description is only a specific embodiment of the present disclosure, so that those skilled in the art can understand or implement the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present disclosure. Therefore, the present disclosure will not be limited to the embodiments described herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method for uploading an object, characterized in that: The object upload system includes terminals, scheduling equipment, and multiple cloud servers; The terminal and the plurality of cloud servers are both in communication connection with the scheduling device; the object uploading method is executed by the scheduling device; the method comprises: receiving an upload request for a target object sent by the terminal; Determine a plurality of candidate storage buckets; the plurality of candidate storage buckets are configured in different cloud servers; Determine a target bucket and a non-target bucket among the multiple candidate buckets; the upload service performance of the target bucket is better than the upload service performance of the non-target bucket; An upload link is established between the target storage bucket and the terminal, so that the terminal uploads the target object to the target storage bucket.
2. The method according to claim 1, characterized in that Determining a target bucket and a non-target bucket among the multiple candidate buckets includes: Acquire a first historical interaction record and a second historical interaction record; the first historical interaction record is a historical interaction record between the scheduling device and each of the candidate storage buckets; the second historical interaction record is a historical interaction record between the terminal and each of the candidate storage buckets; Periodically determining a reliability score of each candidate storage bucket based on the first historical interaction record and / or the second historical interaction record; the reliability score is used to characterize the superiority of the upload service performance of the corresponding candidate storage bucket; Based on the reliability scores of the candidate buckets, a target bucket and a non-target bucket are determined among the multiple candidate buckets.
3. The method according to claim 2, characterized in that The periodically determining the reliability score of each target storage bucket based on the first historical interaction record and / or the second historical interaction record includes: Determine a return success rate and a return delay of each of the candidate storage buckets based on the first historical interaction record and / or the second historical interaction record; Based on the return success rate and return delay of each candidate storage bucket, the reliability score of each candidate storage bucket is periodically determined.
4. The method according to claim 2, characterized in that: The obtaining the first historical interaction record includes: Periodically uploading test data to each of the candidate storage buckets; During the process of uploading the test data, a first historical interaction record between the scheduling device and each of the candidate storage buckets is recorded; the first historical interaction record includes upload result information for the test data, and / or upload time information; the upload result information is used to reflect whether the test data is uploaded successfully.
5. The method according to claim 1, characterized in that: Also includes: In response to an upload request for a target object, decomposing the target object into a plurality of sub-objects; The determining of the target storage bucket among the multiple candidate storage buckets includes: for any of the sub-objects, determining a target storage bucket corresponding to the sub-object among the multiple candidate storage buckets; The terminal subsequently uploads the sub-object corresponding to the target storage bucket.
6. The method according to claim 5, characterized in that Also includes: The multiple sub-objects are uploaded in parallel.
7. The method according to claim 5, characterized in that Also includes: In the process of uploading the corresponding sub-objects to the target storage bucket, monitoring whether the current upload status of each sub-object meets the upload abnormality condition; the upload abnormality condition includes receiving a prompt message indicating that the current corresponding sub-object has not been successfully uploaded, and / or the current upload time of the sub-object reaches a preset time length; If it is monitored that the upload status of any of the sub-objects meets the upload exception condition, for the sub-object, the target storage bucket corresponding to the sub-object is re-determined from the multiple candidate storage buckets; an upload link is established between the re-determined target storage bucket and the terminal; so that the terminal can subsequently upload the corresponding sub-object to the re-determined target storage bucket.
8. The method according to any one of claims 5 to 7, characterized in that: Also includes: After each of the sub-objects is successfully uploaded, a storage record of the target object is formed, and the storage record includes a corresponding relationship between the target object and the sub-objects, and a corresponding relationship between the sub-objects and the storage buckets.
9. The method according to claim 8, characterized in that Also includes: receiving a download request for a target object sent by the terminal; Based on the storage record, determining the storage bucket where each of the sub-objects constituting the target object is located; A download link is established between the storage bucket storing the sub-object and the terminal, so that the terminal downloads the sub-object from the storage bucket storing the sub-object; the terminal is also used to combine the sub-objects corresponding to the target object to obtain the target object.
10. An object uploading device, characterized in that: The object uploading system comprises a terminal, a scheduling device and a plurality of cloud servers; the terminal and the plurality of cloud servers are both in communication connection with the scheduling device; the object uploading device is configured in the scheduling device; The device comprises: A request acquisition module, used for receiving an upload request of a target object sent by the terminal; A first determination module is used to determine a plurality of candidate storage buckets; the plurality of candidate storage buckets are configured in different cloud servers; A second determination module is used to determine a target storage bucket and a non-target storage bucket from the multiple candidate storage buckets; the upload service performance of the target storage bucket is better than the upload service performance of the non-target bucket; The link establishing module is used to establish an upload link between the target storage bucket and the terminal, so that the terminal uploads the target object to the target storage bucket.
11. An electronic device, characterized in that: The electronic device comprises: one or more processors; A storage device for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 9.
12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the method according to any one of claims 1 to 9 is implemented.
Citation Information
Patent Citations
Service request processing method and device, storage medium and electronic equipment
CN111800501A
File downloading method and system
CN115334071A
Data storage method and device based on object storage, equipment and storage medium
CN116527377A
Information pushing method and apparatus, electronic device and computer-readable medium
WO2021057595A1