US20200153889A1 - Method for uploading and downloading file, and server for executing the same - Google Patents

Method for uploading and downloading file, and server for executing the same Download PDF

Info

Publication number
US20200153889A1
US20200153889A1 US16/243,597 US201916243597A US2020153889A1 US 20200153889 A1 US20200153889 A1 US 20200153889A1 US 201916243597 A US201916243597 A US 201916243597A US 2020153889 A1 US2020153889 A1 US 2020153889A1
Authority
US
United States
Prior art keywords
file
metadata
storage
user terminal
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US16/243,597
Inventor
Sun Ung LEE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asd Korea
Original Assignee
Asd Korea
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asd Korea filed Critical Asd Korea
Publication of US20200153889A1 publication Critical patent/US20200153889A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Definitions

  • the following description relates to a technology for uploading and downloading files.
  • data stored in a user terminal may be stored in a storage through a server on the cloud, and the user may upload or download a file through the server. Also, the user may check a modified file through file sharing and file synchronization in real time.
  • a provider providing a cloud service such as file upload/download, file sharing, file synchronization, manages the storage in which an actual physical file is stored as well as the server, and when a user requests uploading/downloading of a file, the server uploads/downloads the file to/from the storage.
  • the cloud service is processed through the server, when the upload/download request of thousands to hundreds of users is concentrated in the server, the server-side load is excessively increased.
  • the server stores the actual physical file and the metadata of the file in the storage at the same time without distinguishing the actual physical file and the metadata of the file, in this case, various problems such as errors, conflicts, delay, frequently occur when the file is managed, the file is shared, and synchronization is performed.
  • a file sharing operation, a file synchronization operation, and the like are performed in a manner of comparing or verifying metadata of a file such as a name, a version, modification dates/generation dates, and a storage location of a file.
  • a time required for calculation such as comparison, verification, and the like is very short.
  • an operation such as uploading and downloading of the physical file may take long time when the size of the file itself is large.
  • an error or collision occurs when several users simultaneously change files while the files are being uploaded/downloaded and a delay of file sharing and file synchronization occurs with frequency due to uploading/downloading of the file.
  • the disclosed embodiments are intended to improve work efficiency such as file management, file sharing, file synchronization, by minimizing a server-side load by allowing a user to upload/download a file directly to a storage and managing the file and metadata of the file through different paths.
  • a server operated by a first operator and connected to one or more storages operated by a second operator which is different from the first operator and a plurality of user terminals respectively through a network
  • the server comprises: a request receiver configured to receive an upload request of a file from a first user terminal and transmit a location information of a storage for storing the file to the first user terminal; an upload confirmer configured to verify whether the file is uploaded to the storage by the first user terminal; and a DB manager configured to store a metadata of the file including the location information in a metadata database (DB) when the file is uploaded to the storage by the first user terminal.
  • DB metadata database
  • the metadata DB may be distinguished from the storage and may be operated by the first operator.
  • the metadata DB may include a plurality of nodes, and the DB manager may store the metadata in each of the plurality of nodes in a form of a block chain.
  • the request receiver may receive a download request of the file from a second user terminal, retrieve metadata corresponding to the file from the metadata DB by using file information included in the download request, and transmit the location information of the storage included in a retrieved metadata to the second user terminal.
  • a method for uploading and downloading files which is executed by a server operated by a first operator and connected to one or more storages operated by a second operator which is different from the first operator and a plurality of user terminals respectively through a network, the method comprising: receiving, by a request receiver of the server, an upload request of a file from a first user terminal, transmitting, by the request receiver, a location information of a storage for storing the file to the first user terminal; verifying, by an upload confirmer of the server, whether the file is uploaded to the storage by the first user terminal; and storing, by a DB manager of the server, a metadata of the file including the location information in a metadata database (DB) when the file is uploaded to the storage by the first user terminal.
  • DB metadata database
  • the metadata DB may be distinguished from the storage and may be operated by the first operator.
  • the metadata DB may comprise a plurality of nodes, and the storing of the metadata in the metadata DB may comprise storing the metadata in each of the plurality of nodes in a form of a block chain.
  • the method for uploading and downloading files further comprising: receiving a download request of the file from a second user terminal; retrieving metadata corresponding to the file from the metadata DB by using file information included in the download request; and transmitting the location information of the storage included in a retrieved metadata to the second user terminal.
  • FIG. 1 is a block diagram showing a detailed configuration of a file system according to an exemplary embodiment.
  • FIG. 2 is a block diagram showing a detailed configuration of a server according to an exemplary embodiment.
  • FIG. 3 is a flowchart for describing a method for uploading files according to an exemplary embodiment.
  • FIG. 4 is a flowchart for describing a method for downloading files according to an exemplary embodiment.
  • FIG. 5 is a block diagram for describing a computing environment including a computing device suitable for use in exemplary embodiments.
  • FIG. 1 is a block diagram of a file system 100 according to an exemplary embodiment.
  • a file system 100 includes a plurality of user terminals 102 , one or more storages 104 , a server 106 , and a metadata database (DB) 108 .
  • DB metadata database
  • the user terminal 102 may be a terminal held by a user, for example, a desktop, a notebook, a tablet computer, a smart phone, a PDA, a smart watch, and the like.
  • the user terminal 102 may request the server 106 to upload or download a file according to a user command.
  • the user terminal 102 may directly access the storage 104 and upload or download a file, unlike the related art.
  • the user terminal 102 may request uploading the file to the server 106 , receive location information of the storage 104 to which the file is to be uploaded from the server 106 , and directly access the storage 104 using the location information.
  • the location information of the storage 104 may be, for example, an IP address, a uniform resource locator (URL) of the storage 104 .
  • the user terminal 102 may access the storage 104 with reference to the location information of the storage 104 received from the server 106 and then directly upload the file to the storage 104 .
  • the user terminal 102 may request downloading the file to the server 106 , receive the location information of the storage 104 in which the file is stored from the server 106 , and then directly access the storage 104 using the location information.
  • the user terminal 102 may access the storage 104 with reference to the location information of the storage 104 received from the server 106 and then directly download the file from the storage 104 .
  • the storage 104 is a repository in which files are stored.
  • the file stored in the storage 104 may be a physical file.
  • metadata such as the name, version, date of modification/creation, and storage location of the file is not stored in the storage 104 but is stored in a metadata DB 108 distinguished from the storage 104 .
  • FIG. 1 Although only one storage 104 is illustrated in FIG. 1 for convenience of explanation, a plurality of storages 104 may exist according to an exemplary embodiment.
  • the server 106 provides a cloud service such as file upload/download, file sharing, file synchronization, and the like.
  • the server 106 may be connected to one or more storages 104 and a plurality of user terminals 102 via a network (not shown), respectively.
  • the network may include the internet, one or more local area networks, wide area networks, cellular networks, mobile networks, other types of networks, or a combination of these networks.
  • FIG. 1 illustrates that the server 106 and the metadata DB 108 are separate components for convenience of explanation, the metadata DB 108 may be a component of the server 106 .
  • the server 106 allows a user to upload/download files directly to/from the storage 104 when a file upload or download request of the user terminal 102 is requested, and manages the file and metadata of the file through different paths.
  • the server 106 receives the upload request of the file from the user terminal 102 , and transfers the location information of the storage 104 for storing the file to the user terminal 102 according to the reception of the upload request.
  • the upload request may include file information such as a file name, a version, and a size of the file.
  • the user terminal 102 may receive the location information of the storage 104 from the server 106 , access to the storage 104 through the location information, and upload the file directly to the storage 104 .
  • the server 106 may then receive an upload confirmation request of the file from the user terminal 102 and forward the upload confirmation request to the storage 104 .
  • the upload confirmation request transmitted from the user terminal 102 may include identification information of the user terminal 102 , file information, and the like, and the server 106 may identify the storage 104 to which the upload request is to be transmitted using the identification information, file information, and the like.
  • the server 106 may receive a confirmation response message that the file has been uploaded normally from the storage 104 , and generate metadata of the file based on the file information received from the user terminal 102 . In this case, the server 106 may insert location information of the storage 104 in which the file is stored into the metadata, and may store metadata including the location information in the metadata DB 108 .
  • the server 106 may receive a download request of a file from the user terminal 102 , and retrieve metadata corresponding to the file in the metadata DB 108 using file information included in the download request.
  • the server 106 may receive the retrieved metadata from the metadata DB 108 , and may transfer the location information of the storage 104 included in the metadata to the user terminal 102 .
  • the user terminal 102 may access the storage 104 with reference to the location information of the storage 104 received from the server 106 , and may directly download the file from the storage 104 .
  • a path of the actual physical file and metadata of the file may be completely separated to separately manage two traffics.
  • a user may directly upload/download files to/from the storage 104 through the user terminal 102 .
  • the server 106 does not directly upload/download files, thereby minimizing load burden of the server 106 .
  • the metadata DB 108 is a place where metadata of a file stored in the storage 104 is stored.
  • the metadata may be, for example, a name, a version, a date of modification/creation, a storage location of files, identification information of the user who uploaded files or the user terminal 102 .
  • the metadata DB 108 may include a plurality of nodes, and the server 106 may store the metadata in each of the plurality of nodes in the form of a blockchain.
  • each node may be a hardware device having a predetermined storage space. That is, according to an exemplary embodiment, the metadata of the file is stored in each node connected by the blockchain, thereby ensuring integrity of the metadata and preventing the metadata stored in the metadata DB 108 from being arbitrarily modified by an unauthorized person.
  • the metadata DB 108 may include a plurality of shards, and the server 106 may distribute and store a large amount of metadata to the plurality of shards. For example, metadata of the file uploaded by the user terminal 102 # 1 to user terminal 102 # 10 may be stored in the first shard, metadata of the file uploaded by the user terminal 102 # 11 to user terminal 102 # 20 may be stored in the second shard, and metadata of the file uploaded by the user terminal 102 # 21 to user terminal 102 # 30 may be stored in the third shard.
  • each shard may be mapped to a group to which a specific user terminal 102 or a set two or more user terminals 102 belong, and the server 106 may identify a shard to store the metadata by referring to identification information of the user terminal 102 included in the metadata.
  • the server 106 and the metadata DB 108 may be operated by a first operator, and the storage 104 may be operated by a second operator that is different from the first operator.
  • the first operator may be, for example, a provider providing a cloud service, a provider providing a blockchain service, and the like, and may be a business who is relatively superior to a second operator to be described later.
  • the second business operator may be, for example, a storage related expert (e.g., Amazon, Google, etc.). That is, the server 106 , the metadata DB 108 , and the storage 104 may be operated by different operating entities.
  • the first operator may put the physical file, which has a relatively large size compared to the metadata, on a second provider, which is a storage related professional.
  • a large amount of files may be more easily backed up and a file may be quickly and rapidly recovered when an error occurs in the storage 104 .
  • the storage 104 may be easily replaced, and various types of storage 104 that are suitable for a user may be simultaneously employed.
  • FIG. 2 is a block diagram illustrating a detailed configuration of the server 106 according to an exemplary embodiment.
  • the server 106 includes a request receiver 202 , an upload confirmer 204 , and a DB manager 206 .
  • the request receiver 202 receives an upload request of the file from the user terminal 102 , and transmits the location information of the storage 104 to store the file to the user terminal 102 according to the reception of the upload request.
  • the upload confirmation request transmitted from the user terminal 102 may include identification information and file information of the user terminal 102 , and the server 106 may identify the storage 104 to which the upload request is to be transmitted using the identification information, file information, and the like.
  • the request receiver 202 may receive a download request of the file from the user terminal 102 .
  • the request receiver 202 may retrieve metadata corresponding to the file from the metadata DB 108 using the file information included in the download request, and may transfer the location information of the storage 104 included in the retrieved metadata to the user terminal 102 .
  • the upload confirmer 204 receives a request for uploading the file from the user terminal 102 , and determines whether the file is uploaded to the storage 104 by the user terminal 102 according to the reception of the upload confirmation request.
  • the user terminal 102 may receive location information of the storage 104 for storing the file from the request receiver 202 , and upload the file to the storage 104 using the location information.
  • the user terminal 102 may transmit a request message for confirming whether the upload of the file has been normally performed to the upload confirmer 204 .
  • the upload confirmer 204 may check whether the file is uploaded to the storage 104 by the user terminal 102 .
  • the upload confirmer 204 may check whether the file is completely uploaded by using a hash value of the uploaded file.
  • this is merely an example, and a method of checking whether the upload confirmer 204 completes uploading of files is not particularly limited.
  • the DB manager 206 stores metadata of a file including location information of the storage 104 in the metadata DB 108 .
  • the metadata DB 108 may include a plurality of nodes, and the DB manager 206 may store the metadata in the plurality of nodes in the form of a blockchain.
  • FIG. 3 is a flowchart illustrating an uploading method of a file according to an exemplary embodiment.
  • the method is described by dividing the method into a plurality of steps, but at least some steps may be performed by changing an order, by being combined with another step, or by being omitted, or by being divided into detailed steps.
  • FIG. 3 it is assumed in FIG. 3 that the first user terminal 102 uploads a file, and in FIG. 4 , the second user terminal 102 that is different from the first user terminal 102 downloads the file.
  • the user terminal 102 uploading the file may download the uploaded file again.
  • the first user terminal 102 requests uploading a file to the server 106 .
  • the server 106 transmits the location information of the storage 104 for storing the file to the first user terminal 102 .
  • the first user terminal 102 accesses the storage 104 using the location information and uploads the file to the storage 104 .
  • the first user terminal 102 requests verifying whether the file is uploaded to the server 106 .
  • the server 106 requests verifying whether the file is uploaded to the storage 104 .
  • the storage 104 checks whether the file is normally uploaded, and transmits a confirmation response message indicating that the file is normally uploaded to the server 106 .
  • the server 106 stores metadata of a file including location information of the storage 104 in the metadata DB 108 .
  • FIG. 4 is a flowchart illustrating a method of downloading a file according to an exemplary embodiment.
  • the second user terminal 102 requests downloading a file to the server 106 .
  • the download request of the second user terminal 102 may include file information such as a name, a version, and a size of a file to be downloaded.
  • the server 106 retrieves metadata corresponding to the file from the metadata DB 108 using the file information included in the download request.
  • the server 106 receives the metadata retrieved from the metadata DB 108 , and extracts location information of the storage 104 storing the file from the metadata.
  • the server 106 transmits the location information of the storage 104 included in the metadata to the second user terminal 102 .
  • the second user terminal 102 accesses the storage 104 using the location information.
  • the second user terminal 102 downloads the file from the storage 104 .
  • FIG. 5 is a block diagram illustrating a computing environment including a computing device suitable for use in exemplary embodiments.
  • each component may have different functions and capabilities than those described below, and may include additional components as well as those described below.
  • the computing environment 10 includes a computing device 12 .
  • computing device 12 may be a file system 100 or one or more components included in file system 100 .
  • Computing device 12 includes at least one processor 14 , a computer-readable storage medium 16 and a communication bus 18 .
  • the processor 14 may allow the computing device 12 to operate according to the above-described exemplary embodiments.
  • the processor 14 may execute one or more programs stored in the computer-readable storage medium 16 .
  • the one or more programs may include one or more computer-executable instructions, and the computer executable instructions may be configured to cause the computing device 12 to perform operations according to an exemplary embodiment when executed by the processor 14 .
  • the computer-readable storage medium 16 is configured to store computer-executable instructions, program code, program data, and/or other suitable types of information.
  • the program 20 stored in the computer-readable storage medium 16 includes a set of instructions executable by the processor 14 .
  • the computer-readable storage medium 16 may be a memory (volatile memory such as random access memory, non-volatile memory, or any suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other types of storage media that are accessible by the computing device 12 and that can store desired information, or a suitable combination thereof.
  • the communication bus 18 includes a processor 14 , a computer-readable storage medium 16 , to interconnect other various components of the computing device 12 .
  • Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more input/output devices 24 .
  • the I/O interface 22 and the network communication interface 26 are connected to a communication bus 18 .
  • the I/O device 24 may be connected to other components of the computing device 12 through the I/O interface 22 .
  • the input/output device 24 may include an input device such as a pointing device (e.g., a mouse or a track pad), a keyboard, a touch input device (e.g., a touch pad or a touch screen), a voice or sound input device, various types of sensor devices, an input device such as a photographing device, and/or an output device such as a display device, a printer, a speaker, and/or a network card.
  • the exemplary input/output device 24 may be included within the computing device 12 as a component that configures the computing device 12 , or may be coupled with the computing device 12 as a separate device that is distinct from the computing device 12 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A method for uploading and downloading file includes receiving, by a request receiver of the server, an upload request of a file from a first user terminal; transmitting, by the request receiver, a location information of a storage for storing the file to the first user terminal, verifying, by an upload confirmer of the server, whether the file is uploaded to the storage by the first user terminal, and storing, by a DB manager of the server, a metadata of the file including the location information in a metadata database (DB) when the file is uploaded to the storage by the first user terminal. A user may directly upload/download a file to/from the storage through the user terminal, and in this case, even if the number of users is increased, the server may not directly upload/download the file, thereby minimizing load burden of the server.

Description

    CROSS-REFERENCE TO RELATED APPLICATION(S)
  • This application claims the benefit under 35 USC § 119(a) of Korean Patent Application No. 10-2018-0137915, filed on Nov. 12, 2018, in the Korean Intellectual Property Office, the entire disclosure of which is incorporated herein by reference for all purposes.
  • BACKGROUND 1. Field
  • The following description relates to a technology for uploading and downloading files.
  • 2. Description of Related Art
  • As the network technology develops, data stored in a user terminal (e.g., a desktop computer, a notebook computer, a portable device, etc.) may be stored in a storage through a server on the cloud, and the user may upload or download a file through the server. Also, the user may check a modified file through file sharing and file synchronization in real time. In general, a provider providing a cloud service such as file upload/download, file sharing, file synchronization, manages the storage in which an actual physical file is stored as well as the server, and when a user requests uploading/downloading of a file, the server uploads/downloads the file to/from the storage. However, as the cloud service is processed through the server, when the upload/download request of thousands to hundreds of users is concentrated in the server, the server-side load is excessively increased.
  • In addition, in the related art, the server stores the actual physical file and the metadata of the file in the storage at the same time without distinguishing the actual physical file and the metadata of the file, in this case, various problems such as errors, conflicts, delay, frequently occur when the file is managed, the file is shared, and synchronization is performed. In general, a file sharing operation, a file synchronization operation, and the like are performed in a manner of comparing or verifying metadata of a file such as a name, a version, modification dates/generation dates, and a storage location of a file. As the size of the metadata is not large, a time required for calculation such as comparison, verification, and the like is very short. On the other hand, an operation such as uploading and downloading of the physical file may take long time when the size of the file itself is large. In the related art, as the physical file and metadata of the file are managed in one storage, an error or collision occurs when several users simultaneously change files while the files are being uploaded/downloaded and a delay of file sharing and file synchronization occurs with frequency due to uploading/downloading of the file.
  • SUMMARY
  • This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
  • The disclosed embodiments are intended to improve work efficiency such as file management, file sharing, file synchronization, by minimizing a server-side load by allowing a user to upload/download a file directly to a storage and managing the file and metadata of the file through different paths.
  • In one general aspect, there is provided a server operated by a first operator and connected to one or more storages operated by a second operator which is different from the first operator and a plurality of user terminals respectively through a network, wherein the server comprises: a request receiver configured to receive an upload request of a file from a first user terminal and transmit a location information of a storage for storing the file to the first user terminal; an upload confirmer configured to verify whether the file is uploaded to the storage by the first user terminal; and a DB manager configured to store a metadata of the file including the location information in a metadata database (DB) when the file is uploaded to the storage by the first user terminal.
  • The metadata DB may be distinguished from the storage and may be operated by the first operator.
  • The metadata DB may include a plurality of nodes, and the DB manager may store the metadata in each of the plurality of nodes in a form of a block chain.
  • The request receiver may receive a download request of the file from a second user terminal, retrieve metadata corresponding to the file from the metadata DB by using file information included in the download request, and transmit the location information of the storage included in a retrieved metadata to the second user terminal.
  • In another general aspect, there is provided a method for uploading and downloading files, which is executed by a server operated by a first operator and connected to one or more storages operated by a second operator which is different from the first operator and a plurality of user terminals respectively through a network, the method comprising: receiving, by a request receiver of the server, an upload request of a file from a first user terminal, transmitting, by the request receiver, a location information of a storage for storing the file to the first user terminal; verifying, by an upload confirmer of the server, whether the file is uploaded to the storage by the first user terminal; and storing, by a DB manager of the server, a metadata of the file including the location information in a metadata database (DB) when the file is uploaded to the storage by the first user terminal.
  • The metadata DB may be distinguished from the storage and may be operated by the first operator.
  • The metadata DB may comprise a plurality of nodes, and the storing of the metadata in the metadata DB may comprise storing the metadata in each of the plurality of nodes in a form of a block chain.
  • After the storing of the metadata in the metadata DB, the method for uploading and downloading files further comprising: receiving a download request of the file from a second user terminal; retrieving metadata corresponding to the file from the metadata DB by using file information included in the download request; and transmitting the location information of the storage included in a retrieved metadata to the second user terminal.
  • Other features and aspects will be apparent from the following detailed description, the drawings, and the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram showing a detailed configuration of a file system according to an exemplary embodiment.
  • FIG. 2 is a block diagram showing a detailed configuration of a server according to an exemplary embodiment.
  • FIG. 3 is a flowchart for describing a method for uploading files according to an exemplary embodiment.
  • FIG. 4 is a flowchart for describing a method for downloading files according to an exemplary embodiment.
  • FIG. 5 is a block diagram for describing a computing environment including a computing device suitable for use in exemplary embodiments.
  • Throughout the drawings and the detailed description, unless otherwise described, the same drawing reference numerals will be understood to refer to the same elements, features, and structures. The relative size and depiction of these elements may be exaggerated for clarity, illustration, and convenience.
  • DETAILED DESCRIPTION
  • The following description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. Accordingly, various changes, modifications, and equivalents of the methods, apparatuses, and/or systems described herein will be suggested to those of ordinary skill in the art.
  • Descriptions of well-known functions and constructions may be omitted for increased clarity and conciseness. Also, terms described in below are selected by considering functions in the embodiment and meanings may vary depending on, for example, a user or operator's intentions or customs. Therefore, definitions of the terms should be made on the basis of the overall context. The terminology used in the detailed description is provided only to describe embodiments of the present disclosure and not for purposes of limitation. Unless the context clearly indicates otherwise, the singular forms include the plural forms. It should be understood that the terms “comprises” or “includes” specify some features, numbers, steps, operations, elements, and/or combinations thereof when used herein, but do not preclude the presence or possibility of one or more other features, numbers, steps, operations, elements, and/or combinations thereof in addition to the description.
  • FIG. 1 is a block diagram of a file system 100 according to an exemplary embodiment. As shown in FIG. 1, a file system 100 according to an exemplary embodiment includes a plurality of user terminals 102, one or more storages 104, a server 106, and a metadata database (DB) 108.
  • The user terminal 102 may be a terminal held by a user, for example, a desktop, a notebook, a tablet computer, a smart phone, a PDA, a smart watch, and the like. The user terminal 102 may request the server 106 to upload or download a file according to a user command. In this case, the user terminal 102 may directly access the storage 104 and upload or download a file, unlike the related art.
  • As an example, the user terminal 102 may request uploading the file to the server 106, receive location information of the storage 104 to which the file is to be uploaded from the server 106, and directly access the storage 104 using the location information. Here, the location information of the storage 104 may be, for example, an IP address, a uniform resource locator (URL) of the storage 104. The user terminal 102 may access the storage 104 with reference to the location information of the storage 104 received from the server 106 and then directly upload the file to the storage 104.
  • As another example, the user terminal 102 may request downloading the file to the server 106, receive the location information of the storage 104 in which the file is stored from the server 106, and then directly access the storage 104 using the location information. The user terminal 102 may access the storage 104 with reference to the location information of the storage 104 received from the server 106 and then directly download the file from the storage 104.
  • The storage 104 is a repository in which files are stored. The file stored in the storage 104 may be a physical file. As will be described later, metadata such as the name, version, date of modification/creation, and storage location of the file is not stored in the storage 104 but is stored in a metadata DB 108 distinguished from the storage 104. Although only one storage 104 is illustrated in FIG. 1 for convenience of explanation, a plurality of storages 104 may exist according to an exemplary embodiment.
  • The server 106 provides a cloud service such as file upload/download, file sharing, file synchronization, and the like. The server 106 may be connected to one or more storages 104 and a plurality of user terminals 102 via a network (not shown), respectively. Here, the network may include the internet, one or more local area networks, wide area networks, cellular networks, mobile networks, other types of networks, or a combination of these networks. Although FIG. 1 illustrates that the server 106 and the metadata DB 108 are separate components for convenience of explanation, the metadata DB 108 may be a component of the server 106.
  • According to an exemplary embodiment, the server 106 allows a user to upload/download files directly to/from the storage 104 when a file upload or download request of the user terminal 102 is requested, and manages the file and metadata of the file through different paths.
  • Specifically, the server 106 receives the upload request of the file from the user terminal 102, and transfers the location information of the storage 104 for storing the file to the user terminal 102 according to the reception of the upload request. In this case, the upload request may include file information such as a file name, a version, and a size of the file. The user terminal 102 may receive the location information of the storage 104 from the server 106, access to the storage 104 through the location information, and upload the file directly to the storage 104.
  • The server 106 may then receive an upload confirmation request of the file from the user terminal 102 and forward the upload confirmation request to the storage 104. The upload confirmation request transmitted from the user terminal 102 may include identification information of the user terminal 102, file information, and the like, and the server 106 may identify the storage 104 to which the upload request is to be transmitted using the identification information, file information, and the like. The server 106 may receive a confirmation response message that the file has been uploaded normally from the storage 104, and generate metadata of the file based on the file information received from the user terminal 102. In this case, the server 106 may insert location information of the storage 104 in which the file is stored into the metadata, and may store metadata including the location information in the metadata DB 108.
  • Also, the server 106 may receive a download request of a file from the user terminal 102, and retrieve metadata corresponding to the file in the metadata DB 108 using file information included in the download request. The server 106 may receive the retrieved metadata from the metadata DB 108, and may transfer the location information of the storage 104 included in the metadata to the user terminal 102. Thereafter, the user terminal 102 may access the storage 104 with reference to the location information of the storage 104 received from the server 106, and may directly download the file from the storage 104. As described above, according to an exemplary embodiment, a path of the actual physical file and metadata of the file may be completely separated to separately manage two traffics. In this case, an error or a collision, a delay phenomenon, or the like, occurred during uploading/downloading of the file may be minimized. In addition, according to an exemplary embodiment, a user may directly upload/download files to/from the storage 104 through the user terminal 102. In this case, even if the number of users is increased, the server 106 does not directly upload/download files, thereby minimizing load burden of the server 106.
  • The metadata DB 108 is a place where metadata of a file stored in the storage 104 is stored. In the present exemplary embodiments, the metadata may be, for example, a name, a version, a date of modification/creation, a storage location of files, identification information of the user who uploaded files or the user terminal 102. In this case, the metadata DB 108 may include a plurality of nodes, and the server 106 may store the metadata in each of the plurality of nodes in the form of a blockchain. Here, each node may be a hardware device having a predetermined storage space. That is, according to an exemplary embodiment, the metadata of the file is stored in each node connected by the blockchain, thereby ensuring integrity of the metadata and preventing the metadata stored in the metadata DB 108 from being arbitrarily modified by an unauthorized person.
  • The metadata DB 108 may include a plurality of shards, and the server 106 may distribute and store a large amount of metadata to the plurality of shards. For example, metadata of the file uploaded by the user terminal 102 #1 to user terminal 102 #10 may be stored in the first shard, metadata of the file uploaded by the user terminal 102 #11 to user terminal 102 #20 may be stored in the second shard, and metadata of the file uploaded by the user terminal 102 #21 to user terminal 102 #30 may be stored in the third shard. That is, each shard may be mapped to a group to which a specific user terminal 102 or a set two or more user terminals 102 belong, and the server 106 may identify a shard to store the metadata by referring to identification information of the user terminal 102 included in the metadata.
  • In addition, in the present embodiments, the server 106 and the metadata DB 108 may be operated by a first operator, and the storage 104 may be operated by a second operator that is different from the first operator. Here, the first operator may be, for example, a provider providing a cloud service, a provider providing a blockchain service, and the like, and may be a business who is relatively superior to a second operator to be described later. Also, the second business operator may be, for example, a storage related expert (e.g., Amazon, Google, etc.). That is, the server 106, the metadata DB 108, and the storage 104 may be operated by different operating entities. Generally, it is difficult to efficiently manage a storage having a large capacity in the case of a business provider, and it is difficult to recover data due to a lack of experts when an error occurs in the storage. Accordingly, the first operator may put the physical file, which has a relatively large size compared to the metadata, on a second provider, which is a storage related professional. In this case, a large amount of files may be more easily backed up and a file may be quickly and rapidly recovered when an error occurs in the storage 104. In addition, in this case, the storage 104 may be easily replaced, and various types of storage 104 that are suitable for a user may be simultaneously employed.
  • FIG. 2 is a block diagram illustrating a detailed configuration of the server 106 according to an exemplary embodiment. Referring to FIG. 2, the server 106 includes a request receiver 202, an upload confirmer 204, and a DB manager 206.
  • The request receiver 202 receives an upload request of the file from the user terminal 102, and transmits the location information of the storage 104 to store the file to the user terminal 102 according to the reception of the upload request. In this case, the upload confirmation request transmitted from the user terminal 102 may include identification information and file information of the user terminal 102, and the server 106 may identify the storage 104 to which the upload request is to be transmitted using the identification information, file information, and the like.
  • The request receiver 202 may receive a download request of the file from the user terminal 102. In this case, the request receiver 202 may retrieve metadata corresponding to the file from the metadata DB 108 using the file information included in the download request, and may transfer the location information of the storage 104 included in the retrieved metadata to the user terminal 102.
  • The upload confirmer 204 receives a request for uploading the file from the user terminal 102, and determines whether the file is uploaded to the storage 104 by the user terminal 102 according to the reception of the upload confirmation request. The user terminal 102 may receive location information of the storage 104 for storing the file from the request receiver 202, and upload the file to the storage 104 using the location information. After uploading the file, the user terminal 102 may transmit a request message for confirming whether the upload of the file has been normally performed to the upload confirmer 204. Accordingly, the upload confirmer 204 may check whether the file is uploaded to the storage 104 by the user terminal 102. For example, the upload confirmer 204 may check whether the file is completely uploaded by using a hash value of the uploaded file. However, this is merely an example, and a method of checking whether the upload confirmer 204 completes uploading of files is not particularly limited.
  • When the file is identified as being uploaded to the storage 104 by the user terminal 102, the DB manager 206 stores metadata of a file including location information of the storage 104 in the metadata DB 108. As described above, the metadata DB 108 may include a plurality of nodes, and the DB manager 206 may store the metadata in the plurality of nodes in the form of a blockchain.
  • FIG. 3 is a flowchart illustrating an uploading method of a file according to an exemplary embodiment. In the illustrated flow chart, the method is described by dividing the method into a plurality of steps, but at least some steps may be performed by changing an order, by being combined with another step, or by being omitted, or by being divided into detailed steps. For convenience of description, it is assumed in FIG. 3 that the first user terminal 102 uploads a file, and in FIG. 4, the second user terminal 102 that is different from the first user terminal 102 downloads the file. However, this is merely an example, and the user terminal 102 uploading the file may download the uploaded file again.
  • In S102, the first user terminal 102 requests uploading a file to the server 106.
  • In S104, the server 106 transmits the location information of the storage 104 for storing the file to the first user terminal 102.
  • In S106, the first user terminal 102 accesses the storage 104 using the location information and uploads the file to the storage 104.
  • In S108, the first user terminal 102 requests verifying whether the file is uploaded to the server 106.
  • In S110, the server 106 requests verifying whether the file is uploaded to the storage 104.
  • In S112, the storage 104 checks whether the file is normally uploaded, and transmits a confirmation response message indicating that the file is normally uploaded to the server 106.
  • In S114, the server 106 stores metadata of a file including location information of the storage 104 in the metadata DB 108.
  • FIG. 4 is a flowchart illustrating a method of downloading a file according to an exemplary embodiment.
  • In S202, the second user terminal 102 requests downloading a file to the server 106. The download request of the second user terminal 102 may include file information such as a name, a version, and a size of a file to be downloaded.
  • In S204, the server 106 retrieves metadata corresponding to the file from the metadata DB 108 using the file information included in the download request.
  • In S206, the server 106 receives the metadata retrieved from the metadata DB 108, and extracts location information of the storage 104 storing the file from the metadata.
  • In S208, the server 106 transmits the location information of the storage 104 included in the metadata to the second user terminal 102.
  • In S210, the second user terminal 102 accesses the storage 104 using the location information.
  • In S212, the second user terminal 102 downloads the file from the storage 104.
  • FIG. 5 is a block diagram illustrating a computing environment including a computing device suitable for use in exemplary embodiments. In the illustrated embodiment, each component may have different functions and capabilities than those described below, and may include additional components as well as those described below.
  • The computing environment 10 includes a computing device 12. In one embodiment, computing device 12 may be a file system 100 or one or more components included in file system 100.
  • Computing device 12 includes at least one processor 14, a computer-readable storage medium 16 and a communication bus 18. The processor 14 may allow the computing device 12 to operate according to the above-described exemplary embodiments. For example, the processor 14 may execute one or more programs stored in the computer-readable storage medium 16. The one or more programs may include one or more computer-executable instructions, and the computer executable instructions may be configured to cause the computing device 12 to perform operations according to an exemplary embodiment when executed by the processor 14.
  • The computer-readable storage medium 16 is configured to store computer-executable instructions, program code, program data, and/or other suitable types of information. The program 20 stored in the computer-readable storage medium 16 includes a set of instructions executable by the processor 14. In an embodiment, the computer-readable storage medium 16 may be a memory (volatile memory such as random access memory, non-volatile memory, or any suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other types of storage media that are accessible by the computing device 12 and that can store desired information, or a suitable combination thereof.
  • The communication bus 18 includes a processor 14, a computer-readable storage medium 16, to interconnect other various components of the computing device 12.
  • Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more input/output devices 24. The I/O interface 22 and the network communication interface 26 are connected to a communication bus 18. The I/O device 24 may be connected to other components of the computing device 12 through the I/O interface 22. The input/output device 24 may include an input device such as a pointing device (e.g., a mouse or a track pad), a keyboard, a touch input device (e.g., a touch pad or a touch screen), a voice or sound input device, various types of sensor devices, an input device such as a photographing device, and/or an output device such as a display device, a printer, a speaker, and/or a network card. The exemplary input/output device 24 may be included within the computing device 12 as a component that configures the computing device 12, or may be coupled with the computing device 12 as a separate device that is distinct from the computing device 12.
  • Although the exemplary embodiment of the present invention has been described in detail with reference to the exemplary embodiment of the present invention, it will be understood by those skilled in the art that various modifications may be made within the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, and should be determined by the appended claims as well as the appended claims.

Claims (8)

What is claimed is:
1. A server operated by a first operator and connected to one or more storages operated by a second operator which is different from the first operator and a plurality of user terminals respectively through a network, wherein the server comprises:
a request receiver configured to receive an upload request of a file from a first user terminal and transmit a location information of a storage for storing the file to the first user terminal;
an upload confirmer configured to verify whether the file is uploaded to the storage by the first user terminal; and
a database (DB) manager configured to store a metadata of the file including the location information in a metadata database (DB) when the file is uploaded to the storage by the first user terminal.
2. The server of claim 1, wherein the metadata DB is distinguished from the storage and operated by the first operator.
3. The server of claim 1, wherein the metadata DB includes a plurality of nodes, and the DB manager stores the metadata in each of the plurality of nodes in a form of a block chain.
4. The server of claim 1, wherein the request receiver receives a download request of the file from a second user terminal, retrieves metadata corresponding to the file from the metadata DB by using file information included in the download request, and transmits the location information of the storage included in a retrieved metadata to the second user terminal.
5. A method for uploading and downloading files, which is executed by a server operated by a first operator and connected to one or more storages operated by a second operator which is different from the first operator and a plurality of user terminals respectively through a network, the method comprising:
receiving, by a request receiver of the server, an upload request of a file from a first user terminal,
transmitting, by the request receiver, a location information of a storage for storing the file to the first user terminal;
verifying, by an upload confirmer of the server, whether the file is uploaded to the storage by the first user terminal; and
storing, by a database (DB) manager of the server, a metadata of the file including the location information in a metadata database (DB) when the file is uploaded to the storage by the first user terminal.
6. The method of claim 5, wherein the metadata DB is distinguished from the storage and operated by the first operator.
7. The method of claim 5, wherein the metadata DB comprises a plurality of nodes, and the storing of the metadata in the metadata DB comprises storing the metadata in each of the plurality of nodes in a form of a block chain.
8. The method of claim 5, further, after the storing of the metadata in the metadata DB, comprising:
receiving a download request of the file from a second user terminal;
retrieving metadata corresponding to the file from the metadata DB by using file information included in the download request; and
transmitting the location information of the storage included in a retrieved metadata to the second user terminal.
US16/243,597 2018-11-12 2019-01-09 Method for uploading and downloading file, and server for executing the same Abandoned US20200153889A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180137915 2018-11-12
KR10-2018-0137915 2018-11-12

Publications (1)

Publication Number Publication Date
US20200153889A1 true US20200153889A1 (en) 2020-05-14

Family

ID=70551950

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/243,597 Abandoned US20200153889A1 (en) 2018-11-12 2019-01-09 Method for uploading and downloading file, and server for executing the same

Country Status (1)

Country Link
US (1) US20200153889A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527756A (en) * 2020-12-17 2021-03-19 厦门市美亚柏科信息股份有限公司 File synchronization operation method, terminal equipment and storage medium
CN112532740A (en) * 2020-12-11 2021-03-19 平安科技(深圳)有限公司 File uploading method and device and file checking method and device
US20220107958A1 (en) * 2020-10-07 2022-04-07 Western Digital Technologies, Inc. Data integrity of replicated databases
CN115134322A (en) * 2022-06-24 2022-09-30 天翼电信终端有限公司 File secure transmission method and device based on cloud mobile phone, cloud mobile phone platform and storage medium
US20230168837A1 (en) * 2020-04-02 2023-06-01 Maruichi Warehouse Co., Ltd. Information processing system
US11709797B2 (en) * 2019-06-28 2023-07-25 EMC IP Holding Company LLC Method, device and computer program product for information processing

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428540B1 (en) * 2000-03-03 2008-09-23 Intel Corporation Network storage system
US20100179986A1 (en) * 2009-01-13 2010-07-15 Viasat, Inc. Content set based deltacasting
US8812672B2 (en) * 2001-03-21 2014-08-19 Theplatform For Media, Inc., A Washington Corporation Method and system for managing and distributing digital media
US9489410B1 (en) * 2016-04-29 2016-11-08 Umbel Corporation Bitmap index including internal metadata storage
US20160335447A1 (en) * 2015-05-15 2016-11-17 Alcatel-Lucent Usa, Inc. Secure enterprise cdn framework
US20160373821A1 (en) * 2015-06-18 2016-12-22 Ericsson Ab Directory limit based system and method for storing media segments
US20170111362A1 (en) * 2014-03-24 2017-04-20 Huawei Technologies Co., Ltd. File downloading method, apparatus, and system
US20170201571A1 (en) * 2015-09-10 2017-07-13 Vimmi Communications Ltd. Content delivery network
US20170322850A1 (en) * 2012-11-16 2017-11-09 China Mobile Communications Corporation Data synchronization method, system, data synchronization server and terminal
US20170353516A1 (en) * 2014-10-29 2017-12-07 DLVR, Inc. Determining manifest file data used in adaptive streaming video delivery
US9928379B1 (en) * 2008-09-08 2018-03-27 Steven Miles Hoffer Methods using mediation software for rapid health care support over a secured wireless network; methods of composition; and computer program products therefor
US20180293021A1 (en) * 2015-01-07 2018-10-11 Mover Inc. Method and system for transferring data between storage systems
US20180367621A1 (en) * 2017-06-19 2018-12-20 Cisco Technology, Inc. Secure service chaining

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428540B1 (en) * 2000-03-03 2008-09-23 Intel Corporation Network storage system
US8812672B2 (en) * 2001-03-21 2014-08-19 Theplatform For Media, Inc., A Washington Corporation Method and system for managing and distributing digital media
US9928379B1 (en) * 2008-09-08 2018-03-27 Steven Miles Hoffer Methods using mediation software for rapid health care support over a secured wireless network; methods of composition; and computer program products therefor
US20100179986A1 (en) * 2009-01-13 2010-07-15 Viasat, Inc. Content set based deltacasting
US20170322850A1 (en) * 2012-11-16 2017-11-09 China Mobile Communications Corporation Data synchronization method, system, data synchronization server and terminal
US20170111362A1 (en) * 2014-03-24 2017-04-20 Huawei Technologies Co., Ltd. File downloading method, apparatus, and system
US20170353516A1 (en) * 2014-10-29 2017-12-07 DLVR, Inc. Determining manifest file data used in adaptive streaming video delivery
US20180293021A1 (en) * 2015-01-07 2018-10-11 Mover Inc. Method and system for transferring data between storage systems
US20160335447A1 (en) * 2015-05-15 2016-11-17 Alcatel-Lucent Usa, Inc. Secure enterprise cdn framework
US20160373821A1 (en) * 2015-06-18 2016-12-22 Ericsson Ab Directory limit based system and method for storing media segments
US20170201571A1 (en) * 2015-09-10 2017-07-13 Vimmi Communications Ltd. Content delivery network
US9489410B1 (en) * 2016-04-29 2016-11-08 Umbel Corporation Bitmap index including internal metadata storage
US20180367621A1 (en) * 2017-06-19 2018-12-20 Cisco Technology, Inc. Secure service chaining

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11709797B2 (en) * 2019-06-28 2023-07-25 EMC IP Holding Company LLC Method, device and computer program product for information processing
US20230168837A1 (en) * 2020-04-02 2023-06-01 Maruichi Warehouse Co., Ltd. Information processing system
US12223200B2 (en) * 2020-04-02 2025-02-11 Maruichi Warehouse Co., Ltd. Information processing system
US20220107958A1 (en) * 2020-10-07 2022-04-07 Western Digital Technologies, Inc. Data integrity of replicated databases
US11775553B2 (en) * 2020-10-07 2023-10-03 Western Digital Technologies, Inc. Data integrity of replicated databases
CN112532740A (en) * 2020-12-11 2021-03-19 平安科技(深圳)有限公司 File uploading method and device and file checking method and device
CN112527756A (en) * 2020-12-17 2021-03-19 厦门市美亚柏科信息股份有限公司 File synchronization operation method, terminal equipment and storage medium
CN115134322A (en) * 2022-06-24 2022-09-30 天翼电信终端有限公司 File secure transmission method and device based on cloud mobile phone, cloud mobile phone platform and storage medium

Similar Documents

Publication Publication Date Title
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
US11943291B2 (en) Hosted file sync with stateless sync nodes
US10959089B2 (en) Data management microservice in a microservice domain
CN109522330B (en) Cloud platform data processing method, device, equipment and medium based on block chain
US20180121466A1 (en) Replicating data across data centers
US10623470B2 (en) Optimizing internet data transfers using an intelligent router agent
US10656972B2 (en) Managing idempotent operations while interacting with a system of record
CN109522462B (en) Cloud query method, device, equipment and storage medium based on block chain
US11886390B2 (en) Data file partition and replication
CN103475721B (en) A kind of digital asset updates the digital asset update method of system
CN108710681A (en) File acquisition method, device, equipment and storage medium
US8660996B2 (en) Monitoring files in cloud-based networks
US8352442B2 (en) Determination of an updated data source from disparate data sources
US12288060B2 (en) Data file partition and replication
US10922188B2 (en) Method and system to tag and route the striped backups to a single deduplication instance on a deduplication appliance
US20250013659A1 (en) Methods of orchestrated data sharing across cloud regions and cloud platforms of cloud-based data warehousing systems
US20160323379A1 (en) Distributed storage of software images in computing systems
US11157454B2 (en) Event-based synchronization in a file sharing environment
KR102133764B1 (en) Method for providing contents and server of contents business operator for executing the same
US20210173878A1 (en) Systems and methods of incremented aggregated data retrieval
US12013851B2 (en) Methods of data sharing across cloud regions and cloud platforms of cloud-based data warehousing systems
US11122081B2 (en) Preventing unauthorized access to information resources by deploying and utilizing multi-path data relay systems and sectional transmission techniques
CN110889040B (en) Method and device for pushing information
CN119806914A (en) Big data cluster task transformation verification method, device and system and electronic equipment
CN111800497A (en) Request response method, and hot migration system and device

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION