Control apparatus, control method, and control program
The control device addresses file conflict issues in NAS and cloud storage synchronization by using file lists and priority information to resolve conflicts within the synchronization process, thereby simplifying file management and optimizing storage capacity.
Patent Information
- Application Number
- JP2023189349
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-06
- Publication Date
- 2025-05-19
AI Technical Summary
Existing synchronization technologies face challenges in managing file conflicts when the same file is operated on differently on both Network Attached Storage (NAS) and cloud storage, leading to complications in file management and storage capacity utilization.
A control device and method that perform file synchronization between NAS and cloud storage by using file lists and identifier correspondence information to identify conflicts, and based on priority information, synchronize the conflicting file from the prioritized storage to the other storage, thereby resolving conflicts without splitting files into different names.
This approach simplifies conflict processing during synchronization, prevents complications with cloud storage history functions, and optimizes storage capacity by avoiding the need to split files into different names, thus enhancing overall file management and synchronization efficiency.
Smart Images

Figure 2025077275000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a control device, a control method, and a control program.
Background Art
[0002] Conventionally, a function for periodically making the same content of folders and files stored in a NAS (Network Attached Storage) and folders and files on cloud storage (hereinafter referred to as "synchronization processing") is installed in the NAS (see, for example, Non-Patent Document 1).
[0003] In the synchronization processing, there are one-way synchronization processing for uploading folders and files from the NAS to the cloud storage or downloading them from the cloud storage to the NAS, and two-way synchronization processing for synchronizing the contents of both the NAS and the cloud storage by performing processing corresponding to operations such as creation, editing, deletion, renaming, and moving of files, etc., on one of the NAS and the cloud storage to the other.
[0004] In the two-way synchronization processing, for example, when a certain file is created or edited only in the NAS, the file is uploaded to the cloud storage, and when the file is deleted, the file is deleted from the cloud storage. Also, in the two-way synchronization processing, when a certain file is renamed or moved only in the NAS, the file is deleted from the cloud storage and then uploaded again to the name after renaming or the path after moving. Detection of this operation is performed by comparing the file paths, update dates, and hash values of both the NAS and the cloud.
[0005] A problem of conflict occurs in the two-way synchronization processing. This is a problem of how to process the operations when a user operates on the same synchronized file on both the NAS and the cloud storage.
[0006] For example, for a certain file that exists on both the NAS and the cloud, if the file name renamed on the NAS side happens to match the file name newly created on the cloud side, with the conventional method of comparing the file path and the update date and time, since the file names (file paths) match, both are regarded as the same file, and there is a possibility that the file with the newer update date and time will overwrite the other file.
[0007] Also, due to the renaming on the NAS side, it may be determined that the file path before renaming no longer exists as a file deletion, and there may be an unintended synchronization process where the corresponding file on the cloud side is deleted by the synchronization function.
[0008] Among current cloud storage services, there are some services with a history function that manage files by ID and allow viewing of past versions of files even if the file name (file path) and the content of the file are changed. However, as the files on the cloud side are inadvertently deleted, problems such as the inability to use the file history occur.
[0009] In the prior art, when a conflict occurs, the files on the NAS side or the cloud storage side are saved under different names (for example, the original file name with a date and time - based string added) to avoid conflicts in file paths. For example, in the case of a conflict between renaming and new creation, when synchronizing the NAS - side renaming to the cloud side, it is renamed with a different name from the NAS side, and when synchronizing (downloading) the newly created file on the cloud side to the NAS side, it is saved with a different name from the cloud side, and such processes are performed.
Prior Art Documents
Non - Patent Documents
[0010]
Non - Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0011] However, when saving a file with a different name to avoid conflicts, one file is split into two, and the two files are saved on both the NAS and cloud storage. Also, the file names will not match even though the files on the NAS side and the cloud side are the same file. For this reason, there are problems such as the cooperation with the history function of cloud storage becoming complicated, the relationship of the files to be synchronized becoming complicated and the management becoming cumbersome (for example, the management ID increases), and the capacities of both the NAS and cloud storage being strained.
[0012] The present invention has been made in view of the above circumstances, and an object thereof is to suppress the complication of processing even when a conflict occurs in the synchronization process.
Means for Solving the Problems
[0013] The control device of the present invention is a control device that performs file synchronization between a first storage and a second storage, and includes a first file list including a file path and a first file identifier stored in the first storage, a second file list including a file path and a second file identifier stored in the second storage, and identifier correspondence information that associates the first file identifier and the second file identifier of files stored in both the first storage and the second storage. Based on this, file synchronization processing between the first storage and the second storage is performed. In the synchronization processing, when it is determined that a file path conflict has occurred between the first storage and the second storage, based on the set priority information, the conflicting file of the prioritized storage among the first storage and the second storage is synchronized to the other storage. It is provided with a control unit.
[0014] The control method of the present invention is a control method by a control device that performs file synchronization between a first storage and a second storage. The processor of the control device performs file synchronization processing between the first storage and the second storage based on a first file list including a file path and a first file identifier stored in the first storage, a second file list including a file path and a second file identifier stored in the second storage, and identifier correspondence information that associates the first file identifier and the second file identifier of files stored in both the first storage and the second storage. In the synchronization processing, when it is determined that a file path conflict has occurred between the first storage and the second storage, based on the set priority information, the conflicting file of the prioritized storage among the first storage and the second storage is synchronized to the other storage.
[0015] The control program of the present invention is a control program for a control device that synchronizes files between a first storage and a second storage. The processor of the control device is configured to perform file synchronization processing between the first storage and the second storage based on a first file list including file paths and first file identifiers of files stored in the first storage, a second file list including file paths and second file identifiers of files stored in the second storage, and identifier correspondence information that associates the first file identifiers and the second file identifiers of files stored in both the first storage and the second storage. In the synchronization process, when it is determined that a file path conflict has occurred between the first storage and the second storage, based on the set priority information, the conflicting file of the prioritized storage among the first storage and the second storage is synchronized to the other storage, and the processor is caused to execute the process.
Advantages of the Invention
[0016] According to the present invention, it is possible to provide a control device, a control method, and a control program that can suppress the complication of processing even when a conflict occurs in the synchronization process.
Brief Description of the Drawings
[0017]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
DETAILED DESCRIPTION OF THE INVENTION
[0018] Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0019] (Embodiment) <Synchronization processing system 1 which is an example of the present invention> FIG. 1 is a diagram showing an example of a synchronization processing system 1 which is an example of the present invention. The synchronization processing system 1 shown in FIG. 1 includes, for example, a NAS 10, a cloud storage 20, and a management server 30. These are connected via a network 2. The network 2 is a WAN (Wide Area Network) such as the Internet, for example.
[0020] The NAS 10 is a storage device having a communication function and connected to the network 2. The NAS 10 is an example of a control device.
[0021] The cloud storage 20 is an online storage configured by a virtual server connected to the network 2. Note that, instead of the cloud storage 20, an online storage configured by a physical server connected to the network 2 may be used.
[0022] The NAS 10 performs two-way file synchronization processing between the NAS 10 and the cloud storage 20. This synchronization processing is, for example, a process of periodically making the same the files and folders stored in at least a part of the storage area of the NAS 10 (hereinafter referred to as the "NAS-side synchronization area") and the files and folders stored in the area assigned for synchronization with the NAS-side synchronization area in the storage area of the cloud storage 20 (hereinafter referred to as the "cloud-side synchronization area"). The NAS-side synchronization area is an example of a first storage. The cloud-side synchronization area is an example of a second storage.
[0023] The management server 30 is a server that performs management such as authentication for the NAS 10 to access the cloud storage 20 when the NAS 10 performs the above synchronization processing, for example.
[0024] The information terminal 3 is one or more information terminals having a communication function, such as a PC (Personal Computer) or a smartphone. The information terminal 3 can be connected to each of the NAS 10 and the cloud storage 20.
[0025] For example, the information terminal 3 can be connected to the same wireless LAN (Local Area Network) as the NAS 10 and can be connected to the NAS 10 via an access point of the wireless LAN. By connecting the information terminal 3 to the NAS 10, it is possible to read and write files to and from the NAS-side synchronization area of the NAS 10. File operations performed by the information terminal 3 on the NAS-side synchronization area of the NAS 10 are also reflected in the cloud-side synchronization area of the cloud storage 20 by the above-described synchronization process.
[0026] Also, the information terminal 3 can be connected to the cloud storage 20 via the above-described access point of the wireless LAN or via a mobile communication network or the like. By connecting the information terminal 3 to the cloud storage 20, it is possible to read and write files to and from the cloud-side synchronization area of the cloud storage 20. File operations performed by the information terminal 3 on the cloud-side synchronization area of the cloud storage 20 are also reflected in the NAS-side synchronization area of the NAS 10 by the above-described synchronization process.
[0027] As described above, file operations can be performed by the information terminal 3 on either the NAS-side synchronization area of the NAS 10 or the cloud-side synchronization area of the cloud storage 20. Therefore, a file path conflict may occur between the NAS-side synchronization area of the NAS 10 and the cloud-side synchronization area of the cloud storage 20.
[0028] A file path conflict means, for example, that the file paths of a first file stored in the NAS-side synchronization area and a second file stored in the cloud-side synchronization area are the same, and different operations have been performed on the first file and the second file respectively during the period from the previous synchronization process to the present. In this case, a conflict occurs between reflecting the operation performed on the first file in the NAS-side synchronization area in the cloud-side synchronization area and reflecting the operation performed on the second file in the cloud-side synchronization area in the NAS-side synchronization area. Files that are the target of a file path conflict (for example, the first file and the second file) are referred to as conflicting files.
[0029] Note that the file paths being the same includes not only the case where all of the file paths are completely the same, but also the case where they are the same except for the root part (the part unique to the NAS-side synchronization area and the cloud-side synchronization area). When a file path conflict as described above occurs, NAS10 performs a synchronization process based on the set priority information. The synchronization process based on the priority information will be described later.
[0030] <Hardware Configuration of NAS10> FIG. 2 is a diagram showing an example of the hardware configuration of NAS10. The NAS10 shown in FIG. 1 can be configured, for example, by the information processing apparatus 100 shown in FIG. 2. The information processing apparatus 100 includes a processor 101, a main memory 102, a storage 103, and a communication interface 104. The processor 101, the main memory 102, and the communication interface 104 are connected, for example, by a bus 109.
[0031] The processor 101 is a circuit that performs signal processing, for example, a CPU (Central Processing Unit) that controls the entire NAS 10. Note that the processor 101 may be implemented by other digital circuits such as an FPGA (Field Programmable Gate Array) or a DSP (Digital Signal Processor). Also, the processor 101 may be implemented by combining a plurality of digital circuits.
[0032] The main memory 102 is, for example, a RAM (Random Access Memory). The main memory is used as a work area for the processor 101.
[0033] The storage 103 is, for example, a non-volatile memory such as a magnetic disk, an optical disk, or a flash memory. Various programs for operating the NAS 10 are stored in the storage 103. The programs stored in the storage 103 are loaded into the main memory and executed by the processor 101. Also, the storage 103 has the NAS-side synchronization area described above.
[0034] Also, the storage 103 may include a portable memory that can be removed from the NAS 10. Examples of the portable memory include memory cards such as a USB (Universal Serial Bus) flash drive and an SD (Secure Digital) memory card, and an external hard disk drive.
[0035] The communication interface 104 is a communication interface that communicates between the outside of the NAS 10 (for example, the network 2 and the information terminal 3). The communication interface 104 is controlled by the processor 101.
[0036] <Hardware Configuration of Cloud Storage 20> The cloud storage 20 can be configured by, for example, a virtual server generated using one or more of the information processing apparatuses 100 shown in FIG. 2.
[0037] <Hardware Configuration of Management Server 30> The management server 30 can be configured by, for example, the information processing apparatus 100 shown in FIG. 2.
[0038] FIG. 3 is a diagram showing an example of the functional blocks of the NAS 10 and the cloud storage 20. As shown in FIG. 3, the NAS 10 includes a file list management unit 110, a file operation detection unit 120, a synchronization processing unit 130, a NAS-side synchronization area 140, and a communication unit 150.
[0039] The file list management unit 110 manages a file list 111, a file list 112, and ID correspondence information 113.
[0040] The file list 111 is a list including the NAS-side ID and path of the files stored in the NAS-side synchronization area 140 described later. For example, the file list management unit 110 obtains the file list 111 by obtaining the NAS-side ID and path of the files stored in the NAS-side synchronization area 140 based on the result of the synchronization process by the synchronization processing unit 130. The file list 111 is an example of the first file list.
[0041] The NAS-side ID of the files in the file list 111 is an identifier for the NAS 10 to identify the files and is an example of the first file identifier. The NAS-side ID of the files in the file list 111 is generated, for example, at the time of creation of the files in the NAS-side synchronization area 140 (including those by the synchronization process) and is not changed by changes in the file path or file content.
[0042] The file list 112 is a list including the cloud-side IDs and paths of the files stored in the cloud-side synchronization area 220 described later. For example, the file list management unit 110 requests the file list 112 from the cloud storage 20 via the communication unit 150, and acquires the file list (file list 211 described later) from the cloud storage 20 via the communication unit 150 to obtain the file list 112. The file list 112 is an example of a second file list.
[0043] The cloud-side ID of the file in the file list 112 is an identifier for the cloud storage 20 to identify the file, and is an example of a second file identifier. The cloud-side ID of the file in the file list 112 is generated, for example, when the file is created in the cloud-side synchronization area 220 (including those by synchronization processing), and is not changed by changes in the file path or file content.
[0044] For example, when the synchronization processing is started by the synchronization processing unit 130, the file list management unit 110 acquires the file list 111 and the file list 112 indicating the states of the NAS 10 and the cloud storage 20 at that time as new lists in the synchronization processing. Also, immediately after the synchronization processing is performed by the synchronization processing unit 130, the file list management unit 110 acquires the file list 111 and the file list 112 indicating the states of the NAS 10 and the cloud storage 20 at that time as old lists in the next synchronization processing.
[0045] The ID correspondence information 113 is a list showing the correspondence between the NAS-side ID of the file in the file list 111 and the cloud-side ID of the file in the file list 112. For example, when a file created (newly created) in the NAS-side synchronization area 140 is replicated to the cloud-side synchronization area 220 by synchronization processing, the file list management unit 110 associates the NAS-side ID of the file created in the NAS-side synchronization area 140 with the cloud-side ID of the file replicated to the cloud-side synchronization area 220 and registers it in the ID correspondence information 113.
[0046] In addition, when a file created (newly created) in the cloud - side synchronization area 220 is replicated to the NAS - side synchronization area 140 of the cloud storage 20 by the synchronization process, the file list management unit 110 associates the cloud - side ID of the file created in the cloud - side synchronization area 220 with the NAS - side ID of the file replicated to the NAS - side synchronization area 140 and registers them in the ID correspondence information 113. The ID correspondence information 113 is an example of identifier correspondence information.
[0047] The file operation detection unit 120 detects file operations by the information terminal 3 on the NAS - side synchronization area 140. File operations by the information terminal 3 on the NAS - side synchronization area 140 are, for example, operations such as creating a new file in the NAS - side synchronization area 140, updating a file in the NAS - side synchronization area 140, moving a file in the NAS - side synchronization area 140, and deleting a file in the NAS - side synchronization area 140. Here, moving a file means changing the file path and includes renaming the file.
[0048] The synchronization processing unit 130 performs two - way file synchronization processing between the NAS - side synchronization area 140 and the cloud - side synchronization area 220 based on the file list 111, the file list 112, and the ID correspondence information 113 managed by the file list management unit 110. Specifically, the synchronization processing unit 130 includes a NAS - side processing unit 131 and a cloud - storage - side processing unit 132. The NAS - side processing unit 131 performs file operations on the NAS - side synchronization area 140 in the synchronization process. The cloud - storage - side processing unit 132 performs file operations on the cloud - side synchronization area 220 in the synchronization process by requesting the cloud storage 20 via the communication unit 150.
[0049] In addition, in the synchronization process, when a file - path conflict occurs between the NAS - side synchronization area 140 and the cloud - side synchronization area 220, the synchronization processing unit 130 has a function as a conflict - processing unit that performs conflict - resolution processing to resolve the conflict.
[0050] Specifically, priority information 133 is set in the synchronization processing unit 130. The priority information 133 is information that sets which of the NAS-side synchronization area 140 and the cloud-side synchronization area 220 is to be prioritized (for example, "NAS priority" or "cloud priority"), and is set by, for example, the administrator of the NAS 10 or the cloud storage 20. For example, the information terminal 3 receives priority information 133 indicating which of the NAS-side synchronization area 140 and the cloud-side synchronization area 220 is to be prioritized through a user operation of the information terminal 3. Then, the information terminal 3 connects to the NAS 10 and sets the received priority information 133 in the synchronization processing unit 130. Alternatively, the setting of the priority information 133 in the synchronization processing unit 130 may be performed from the cloud storage 20 or the management server 30.
[0051] When a file path conflict occurs, the synchronization processing unit 130 performs a process of synchronizing the conflicting file of the prioritized storage between the NAS-side synchronization area 140 and the cloud-side synchronization area 220 to the other storage between the NAS-side synchronization area 140 and the cloud-side synchronization area 220 based on the set priority information 133.
[0052] The NAS-side synchronization area 140 is at least a part of the storage (storage 103) of the NAS 10, and is an area set to perform two-way synchronization with the cloud-side synchronization area 220.
[0053] The communication unit 150 communicates with the cloud storage 20. Further, the communication unit 150 may also communicate with the information terminal 3 and the management server 30.
[0054] When the NAS 10 is configured by the information processing apparatus 100 shown in FIG. 2, the file list management unit 110, the file operation detection unit 120, and the synchronization processing unit 130 can be configured by, for example, the processor 101 and the main memory 102 shown in FIG. 2. The NAS-side synchronization area 140 can be configured by, for example, the storage 103 shown in FIG. 2. The communication unit 150 can be configured by, for example, the communication interface 104 shown in FIG. 2.
[0055] The cloud storage 20 includes a file management unit 210, a cloud-side synchronization area 220, a backup area 230, and a communication unit 240.
[0056] The file management unit 210 manages a file list 211 and history information 212.
[0057] The file list 211 is a list including the paths of the files stored in the cloud-side synchronization area 220 described later and the cloud-side IDs of the files. For example, the file management unit 210 obtains the file list 211 by obtaining the paths of the files stored in the cloud-side synchronization area 220 and the cloud-side IDs of the files based on the result of the synchronization process for the cloud-side synchronization area 220. The file list 211 is an example of a second file list. The cloud-side ID of the file in the file list 211 is an example of a second file identifier.
[0058] In addition, the file management unit 210 transmits the file list 211 to the NAS 10 via the communication unit 240 in response to a request from the NAS 10 via the communication unit 240.
[0059] The history information 212 is a history of file operations on the cloud-side synchronization area 220. This file operation is, for example, due to an instruction from the information terminal 3 or a synchronization process by the NAS 10. In addition, the history information 212 includes information indicating the storage location of the file in the previous state of each file operation in the backup area 230 described later. For example, the file management unit 210 performs a process of restoring the file to the cloud-side synchronization area 220 by reading the file in the previous state of the file operation performed in the past from the backup area 230 based on a request from the information terminal 3.
[0060] The cloud-side synchronization area 220 is at least a part of the storage of the cloud storage 20, and is an area set as an area for performing two-way synchronization with the NAS-side synchronization area 140.
[0061] The backup area 230 is an area where files before a file operation (for example, a file operation by an instruction from the information terminal 3 or a synchronization process by the NAS 10) on the cloud - side synchronization area 220 are backed up. Files before a file operation are, for example, files before update or files before deletion.
[0062] The communication unit 240 communicates with the NAS 10. Further, the communication unit 240 may also communicate with the information terminal 3 and the management server 30.
[0063] When the cloud storage 20 is configured by the information processing apparatus 100 shown in FIG. 2, the file management unit 210 can be configured by, for example, the processor 101 and the main memory 102 shown in FIG. 2. The cloud - side synchronization area 220 and the backup area 230 can be configured by, for example, the storage 103 shown in FIG. 2. The communication unit 240 can be configured by, for example, the communication interface 104 shown in FIG. 2.
[0064] <File lists 111, 112 managed by the NAS 10, and ID correspondence information 113> FIG. 4 is a diagram showing an example of the file lists 111, 112 managed by the NAS 10 and the ID correspondence information 113. The file list 111 shows, for each file stored in the NAS - side synchronization area 140, the NAS - side ID (for example, "123") of the file, the path (for example, "a1.txt"), and the hash value.
[0065] The file list 112 shows, for each file stored in the cloud - side synchronization area 220, the cloud - side ID (for example, "001") of the file, the path (for example, "a1.txt"), and the hash value.
[0066] Note that in this example, the file named "a1.txt" is stored in the root directory (the top - most folder) of the NAS - side synchronization area 140 and the root directory of the cloud - side synchronization area 220, and the path is represented only by the file name without including the folder name.
[0067] The ID correspondence information 113 associates the NAS - side ID of the file stored in the NAS - side synchronization area 140 with the cloud - side ID of the file stored in the cloud - side synchronization area 220. In this example, the file named "a1.txt" is stored in both the NAS - side synchronization area 140 and the cloud - side synchronization area 220 through the synchronization process. In NAS10, this "a1.txt" is managed with the NAS - side ID "123", and the cloud storage 20 manages this "a1.txt" with the cloud - side ID "001". In this case, the ID correspondence information 113 includes information associating the NAS - side ID "123" of NAS10 with the cloud - side ID "001" of the cloud storage 20.
[0068] Note that at least any one of these file lists 111, file list 112, and ID correspondence information 113 may be stored in a device different from NAS10 and accessible by NAS10.
[0069] <Synchronization Process by NAS10> Figure 5 is a flowchart showing an example of the synchronization process by NAS10. First, NAS10 determines whether the current timing has reached the synchronization timing (step S11) and waits until the synchronization timing is reached (loop in step S11: No). The synchronization timing is, for example, a periodic timing. As an example, the synchronization timing is the timing every 5 minutes. However, the synchronization timing is not limited to this and can be set to any timing such as every 10 seconds, every 1 minute, every 10 minutes, every 1 hour, every 1 day, every 1 week, etc.
[0070] In step S11, when the synchronization timing arrives (step S11: Yes), NAS 10 acquires, as a new list, the file list 111 of NAS 10 and the file list 112 of cloud storage 20 at the current synchronization timing, that is, at present (step S12).
[0071] Next, NAS 10 compares the new lists of NAS 10 and cloud storage 20, and for each file stored in at least either the NAS-side synchronization area 140 or the cloud-side synchronization area 220, it classifies them into SrcOnly stored only in the NAS-side synchronization area 140, DstOnly stored only in the cloud-side synchronization area 220, and Match stored in both the NAS-side synchronization area 140 and the cloud-side synchronization area 220 (step S13). This classification is performed based on the paths of the file lists 111 and 112.
[0072] Next, NAS 10 acquires, as old lists, the file list 111 of NAS 10 and the file list 112 of cloud storage 20 after the previous synchronization process (step S14). After the previous synchronization process refers to the timing immediately after the synchronization process was performed at the previous synchronization timing.
[0073] Next, NAS 10 initializes the movement candidate list (step S15). The movement candidate list is a list of files that are the target candidates for the movement synchronization process and are commonly used in the SrcOnly synchronization process, DstOnly synchronization process, and Match synchronization process described later. The movement candidate list will be described later (see, for example, FIG. 6).
[0074] Next, NAS 10 starts the SrcOnly synchronization process, DstOnly synchronization process, and Match synchronization process based on the new lists of NAS 10 and cloud storage 20 acquired in step S12, the old lists of NAS 10 and cloud storage 20 acquired in step S14, and the ID correspondence information 113 (step S16).
[0075] The SrcOnly synchronization process is a synchronization process based on the files classified as SrcOnly in step S13. The DstOnly synchronization process is a synchronization process based on the files classified as DstOnly in step S13. The Match synchronization process is a synchronization process based on the files classified as Match in step S13. The SrcOnly synchronization process, the DstOnly synchronization process, and the Match synchronization process may be performed sequentially or in parallel. The SrcOnly synchronization process, the DstOnly synchronization process, and the Match synchronization process will be described later (see FIGS. 6 to 15).
[0076] Next, the NAS 10 waits for the completion of the SrcOnly synchronization process, the DstOnly synchronization process, and the Match synchronization process started in step S16 (step S17).
[0077] Next, after the completion of the SrcOnly synchronization process, the DstOnly synchronization process, and the Match synchronization process, the NAS 10 performs a process of deleting the files remaining registered in the movement candidate list (step S18), and returns to step S11.
[0078] <Movement Candidate List> FIG. 6 is a diagram showing an example of the movement candidate list. The movement candidate list initialized in step S15 of FIG. 5 includes a NAS-side movement candidate list 114 and a cloud-side movement candidate list 115.
[0079] The NAS-side movement candidate list 114 is a list of combinations of NAS-side IDs, source paths, and destination paths. The NAS-side ID is the NAS-side ID of a file to be moved or deleted among the files stored in the NAS-side synchronization area 140 of the NAS 10. The source path of the NAS-side movement candidate list 114 is the current path of the file indicated by the NAS-side ID. That is, the source path of the NAS-side movement candidate list 114 indicates the source path when moving the file indicated by the NAS-side ID, and indicates the path to be deleted when deleting the file indicated by the NAS-side ID. The destination path of the NAS-side movement candidate list 114 indicates the destination path when moving the file indicated by the NAS-side ID.
[0080] The cloud-side movement candidate list 115 is a list of combinations of cloud-side IDs, source paths, and destination paths. The cloud-side ID is the cloud-side ID of a file to be moved or deleted among the files stored in the cloud-side synchronization area 220 of the cloud storage 20. The source path of the cloud-side movement candidate list 115 is the current path of the file indicated by the cloud-side ID. That is, the source path of the cloud-side movement candidate list 115 indicates the source path when moving the file indicated by the cloud-side ID, and indicates the path to be deleted when deleting the file indicated by the cloud-side ID. The destination path of the cloud-side movement candidate list 115 indicates the destination path when moving the file indicated by the cloud-side ID.
[0081] The usage methods of the NAS-side movement candidate list 114 and the cloud-side movement candidate list 115 will be described later (see, for example, FIGS. 7 to 15).
[0082] <SrcOnly Synchronization Process> FIGS. 7 and 8 are diagrams showing an example of the SrcOnly synchronization process. As the SrcOnly synchronization process, the NAS 10 performs the following processes for each of the files classified as SrcOnly in step S13 (referred to as current files).
[0083] First, the NAS 10 determines whether there is a file in the old list whose current file and path are the same (old file) (step S21). In step S21, if there is an old file (step S21: Yes), it means that the old file with the same current file and path only exists in the NAS-side synchronization area 140 and also existed in the NAS-side synchronization area 140 after the previous synchronization process. In this case, the NAS 10 determines whether the IDs (NAS-side IDs) of the current file and the old file are the same (step S22).
[0084] In step S22, if the IDs of the current file and the old file are the same (step S22: Yes), it means that the current file and the old file are the same file. In this case, the NAS 10 determines whether the hash values of the current file and the old file are the same (step S23).
[0085] In step S23, if the hash values of the current file and the old file are the same (step S23: Yes), it means that the contents of the current file and the old file are the same (not updated). That is, in this situation, after the previous synchronization process, the current file existed in both the NAS-side synchronization area 140 and the cloud-side synchronization area 220, but between this synchronization timing and the previous one, the file corresponding to the current file in the cloud-side synchronization area 220 was moved to another path or deleted.
[0086] In this case, the NAS 10 executes the moving process of the current file with the path of the current file as the source (step S24) and ends the process for that current file. The moving process of the current file with the path of the current file as the source is, for example, registering the current file in the NAS-side moving candidate list 114 shown in FIG. 6, and moving the current file when the source and destination are determined. The moving process will be described later (see FIG. 9).
[0087] In step S21, when there is no old file (step S21: No), it is a situation where the current file that exists only in the NAS-side synchronization area 140 has been moved from another path in the NAS-side synchronization area 140 or newly created in the NAS-side synchronization area 140 between the previous synchronization process and the current synchronization timing. In this case, the NAS 10 determines whether there is a file in the old list with the same ID as the current file (step S25).
[0088] In step S25, when there is a file with the same ID (step S25: Yes), it is a situation where the current file that exists only in the NAS-side synchronization area 140 has been moved from another path (the path of the file with the same ID) in the NAS-side synchronization area 140. In this case, the NAS 10 executes a moving process for the file in the cloud-side synchronization area 220 corresponding to the current file (the file having the cloud-side ID corresponding to the NAS-side ID of the current file) with the path of the current file as the destination (step S26), and ends the process for that current file.
[0089] In step S25, when there is no file with the same ID (step S25: No), it is a situation where the current file that exists only in the NAS-side synchronization area 140 has been newly created in the NAS-side synchronization area 140 between the previous synchronization process and the current synchronization timing. In this case, the NAS 10 performs a process of synchronizing the current file in the NAS-side synchronization area 140 to the cloud-side synchronization area 220 by uploading the current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S27), and ends the process for that current file.
[0090] In step S23, when the hash values of the current file and the old file are not the same (step S23: No), it means that the contents of the current file and the old file are different (updated). That is, in this situation, between the previous synchronization process and the current synchronization timing, the current file has been updated in the NAS-side synchronization area 140, and the file corresponding to the current file in the cloud-side synchronization area 220 has been moved to another path or deleted.
[0091] Although this situation is not a file path conflict, for the file that was synchronized in the NAS-side synchronization area 140 and the cloud-side synchronization area 220, a file operation conflict has occurred where the NAS-side synchronization area 140 has been updated and the cloud-side synchronization area 220 has had a move or deletion to another path. In this case, NAS10 determines whether "NAS priority", which gives priority to NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S28).
[0092] In step S28, when "NAS priority" is set (step S28: Yes), NAS10 performs a reverse move process of the cloud-side operation and uploads the current file in the NAS-side synchronization area 140 to the cloud storage 20, thereby synchronizing the current file in the NAS-side synchronization area 140 with the cloud-side synchronization area 220 (step S29), and ends the process for that current file.
[0093] Reverse movement processing for cloud-side operations cancels movement or deletion performed on the file corresponding to the current file in the cloud-side synchronization area 220. For example, when the NAS 10 determines that a file with a cloud-side ID corresponding to the ID of the current file exists in the file list 112 (new list) (when it has been moved), the NAS 10 changes the path of that file (moved file) to the path before movement (the path corresponding to the current file). However, since the current file uploaded from the NAS 10 overwrites the path corresponding to the current file, the NAS 10 may delete the moved file instead of changing its path. Also, when the NAS 10 determines that a file with a cloud-side ID corresponding to the ID of the current file does not exist in the file list 112 (new list) (when it has been deleted), the NAS 10 restores the file by, for example, requesting the backup file in the backup area 230 from the cloud storage 20. However, since the current file uploaded from the NAS 10 overwrites that file, the NAS 10 may not perform any processing regarding the deleted file instead of restoring the deleted file.
[0094] In step S28, when "cloud priority" instead of "NAS priority" is set (step S28: No), the NAS 10 performs the movement process of the current file with the path of the current file as the source (step S30), and ends the process for that current file.
[0095] In step S22, when the IDs of the current file and the old file are not the same (step S22: No), the NAS 10 determines whether there is a file with the same ID as the current file in the old list (step S31).
[0096] In step S31, if there is a file in the old list with the same ID as the current file (step S31: Yes), then between the previous synchronization process and the current synchronization timing, in the NAS - side synchronization area 140, the old file has been moved to another path or deleted, and a current file with the same name as the old file has been generated by moving from another path, and in the cloud - side synchronization area 220, the file corresponding to the old file has been moved to another path or deleted.
[0097] In this case, NAS10 performs a moving process for the cloud - side file corresponding to the old file with the path of the old file as the source of movement (a process of reflecting the movement or deletion of the old file in NAS10 in cloud storage 20) (step S32). Also, NAS10 performs a moving process for the current file with the path of the current file as the source of movement (a process of reflecting the movement in cloud storage 20 in NAS10) (step S33). Next, NAS10 performs a moving process for the cloud - side file corresponding to the current file with the path of the current file as the destination of movement (a process of reflecting the movement in NAS10 in cloud storage 20) (step S34), and then ends the process for that current file.
[0098] In step S31, if there is no file in the old list with the same ID as the current file (step S31: No), then between the previous synchronization process and the current synchronization timing, in the NAS - side synchronization area 140, the old file has been moved to another path or deleted, and a current file with the same name as the old file has been generated by new creation, and in the cloud - side synchronization area 220, the file corresponding to the old file has been moved to another path or deleted.
[0099] In this case, the NAS 10 performs a movement process of the file on the cloud side corresponding to the old file (the same process as step S32) with the path of the old file as the source (step S35). Also, the NAS 10 performs a movement process of the current file (the same process as step S33) with the path of the current file as the source (step S36). Next, the NAS 10 uploads the current file in the NAS-side synchronization area 140 to the cloud storage 20, thereby performing a process of synchronizing the current file in the NAS-side synchronization area 140 with the cloud-side synchronization area 220 (step S37), and ends the process for that current file.
[0100] <Movement process> FIG. 9 is a flowchart showing an example of the movement process. The movement process is performed, for example, using as input the ID of the file (NAS-side ID or cloud-side ID) to be moved or deleted, information indicating whether the file is in the NAS-side synchronization area 140 or the cloud-side synchronization area 220, the path of the source or destination of the file, and information indicating whether the path is the source path or the destination path.
[0101] In the movement process, the NAS 10 first determines whether the ID of the target file is registered in the movement candidate list corresponding to the target file of the movement process (step S41). The movement candidate list corresponding to the target file is the NAS-side movement candidate list 114 when the target file is a file in the NAS-side synchronization area 140, and is the cloud-side movement candidate list 115 when the target file is a file in the cloud-side synchronization area 220.
[0102] In step S41, if the ID of the target file is not registered in the movement candidate list (step S41: No), the NAS 10 determines whether the current movement process is a movement process with the path of the target file as the source (whether the input path is the source path) (step S42).
[0103] In step S42, if it is a moving process with the path as the source (step S42: Yes), the NAS 10 registers the ID of the target file and the source path with the moving candidate list corresponding to the target file of the moving process, using the path of the target file as the source (step S43), and ends the moving process. If it is not a moving process with the path as the source (step S42: No), the NAS 10 registers the ID of the target file and the destination path with the moving candidate list corresponding to the target file of the moving process, using the path of the target file as the destination (step S44), and ends the moving process.
[0104] In step S41, if the ID of the target file is already registered in the moving candidate list (step S41: Yes), for the target file, it is in a state where it is determined that it should be moved, and the source path and the destination path are determined. In this case, the NAS 10 deletes the registration of the target file from the moving candidate list (step S45). Next, the NAS 10 executes the moving command for the target file based on the source path and the destination path corresponding to the ID of the target file (step S46), and ends the moving process.
[0105] For example, in steps S24, S30, S33, and S36 shown in FIGS. 7 and 8, when the NAS-side ID of the current file (SrcOnly file existing only in the NAS 10) is not registered in the NAS-side moving candidate list 114 (when the destination is not determined), the NAS 10 registers the NAS-side ID of the current file and the path (source) in association with each other in the NAS-side moving candidate list 114, using the path of the current file as the source. Also, when the NAS-side ID of the current file is registered in the NAS-side moving candidate list 114 (when the destination is determined), the NAS 10 executes a moving command using as parameters the source and the destination associated with the NAS-side ID of the current file in the NAS-side moving candidate list 114, with the path of the current file as the source.
[0106] In addition, when the SrcOnly synchronization process, DstOnly synchronization process, and Match synchronization process are completed, the files remaining in the NAS-side movement candidate list 114 and the cloud-side movement candidate list 115 (source) are files to be deleted, and are deleted by step S18 shown in FIG. 5.
[0107] <DstOnly Synchronization Process> The DstOnly synchronization process is a process in which the NAS side (NAS-side synchronization area 140) and the cloud side (cloud-side synchronization area 220) are swapped in the SrcOnly synchronization process. The DstOnly synchronization process is performed for each file classified as DstOnly in step S13 using the current file.
[0108] <Match Synchronization Process> FIGS. 10 to 15 are flowcharts showing an example of the Match synchronization process. NAS 10 performs the following processes for each of the files classified as Match in step S13 (the NAS-side file is the NAS-side current file, and the cloud-side file is the cloud-side current file) as the Match synchronization process.
[0109] First, NAS 10 determines whether there is a file in the old list with the same path as the NAS-side current file (referred to as the NAS-side old file) (step S51). If there is no file in the old list with the same path as the NAS-side current file in step S51 (step S51: No), NAS 10 determines whether there is a file with the same ID as the NAS-side current file in the old list (step S52).
[0110] If there is a file with the same ID as the NAS-side current file in the old list in step S52 (step S52: Yes), NAS 10 determines whether there is a file with the same ID as the cloud-side current file in the old list (step S53).
[0111] In step S53, if a file with the same ID as the current cloud-side file exists in the old list (step S53: Yes), it means that the current NAS-side file has been moved from another path in the NAS-side synchronization area 140 from the previous synchronization process to the current synchronization timing, and the current cloud-side file has been moved from another path in the cloud-side synchronization area 220 from the previous synchronization process to the current synchronization timing.
[0112] This situation is a case where a file path conflict has occurred, that is, the current NAS-side file and the current cloud-side file have the same file name and have been subjected to different file operations from the previous synchronization process to the current synchronization process. In this case, NAS10 determines whether "NAS priority", which gives priority to NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S54).
[0113] In step S54, if "NAS priority" is set (step S54: Yes), NAS10 performs a reverse movement process of the cloud-side operation (step S55). The reverse movement process of the cloud-side operation is the same as the process in step S29 above. Next, NAS10 performs a movement process of the cloud-side file corresponding to the current NAS-side file (the file with the ID corresponding to the current NAS-side file) with the path of the current NAS-side file as the destination (step S56), and ends the processing for the current NAS-side file and the current cloud-side file.
[0114] In step S54, when "cloud priority" instead of "NAS priority" is set (step S54: No), NAS 10 performs a reverse movement process of the NAS side operation (step S57). The reverse movement process of the NAS side operation is a process of canceling the movement when the NAS side old file has been moved to another path. For example, when there is a file with the same ID as the NAS side old file in the file list 111 (new list) (when it has been moved), NAS 10 changes the path of that file (moved file) to the path before the movement (the path corresponding to the NAS side current file). However, since the file to be moved by the subsequent movement process overwrites the path corresponding to the NAS side current file, NAS 10 may delete the moved file instead of changing its path. Also, when there is no file with the same ID as the NAS side old file in the file list 111 (new list) (when it has been deleted), NAS 10 restores the file by, for example, requesting the backup file in the backup area 230 from the cloud storage 20. However, since the file to be moved by the subsequent movement process overwrites that file, NAS 10 may not perform any processing regarding the deleted file instead of restoring the deleted file.
[0115] Next, NAS 10 performs a movement process of the NAS side file corresponding to the cloud side current file (the file with the same ID as the cloud side current file) with the path of the NAS side current file as the destination (step S58), and ends the processing for the NAS side current file and the cloud side current file.
[0116] In step S53, when there is no file with the same ID as the cloud side current file in the old list (step S53: No), it means that the NAS side current file has been moved from another path in the NAS side synchronization area 140 from the previous synchronization process to the current synchronization timing, and the cloud side current file has been newly created from the previous synchronization process to the current synchronization timing.
[0117] This situation is a situation where a file path conflict occurs, where the current NAS-side file and the current cloud-side file have the same file name and different file operations have been performed on each of them from the previous synchronization process to the current synchronization process. In this case, the NAS 10 determines whether "NAS priority", which gives priority to the NAS 10 over the NAS 10 and the cloud storage 20, is set based on the priority information 133 (step S59).
[0118] In step S59, if "NAS priority" is set (step S59: Yes), the NAS 10 performs a moving process on the cloud-side file corresponding to the NAS-side current file (the file corresponding to the NAS-side current file in terms of ID) with the path of the NAS-side current file as the destination (step S60), and ends the process for the NAS-side current file and the cloud-side current file.
[0119] In step S59, if "cloud priority" instead of "NAS priority" is set (step S59: No), the NAS 10 performs a moving process that is the reverse of the NAS-side operation (step S61). The moving process that is the reverse of the NAS-side operation is the same as the process in step S57.
[0120] Next, the NAS 10 performs a process of synchronizing the cloud-side current file in the cloud-side synchronization area 220 to the NAS-side synchronization area 140 by downloading the cloud-side current file in the cloud-side synchronization area 220 to the NAS 10 (step S62), and ends the process for the NAS-side current file and the cloud-side current file.
[0121] In step S52, if the file with the same ID as the NAS-side current file is not in the old list (step S52: No), the NAS 10 determines whether the file with the same ID as the cloud-side current file is in the old list (step S63).
[0122] In step S63, if a file with the same ID as the current cloud-side file exists in the old list (step S63: Yes), it means that the NAS-side current file was newly created between the previous synchronization process and the current synchronization timing, and the cloud-side current file was moved from another path in the cloud-side synchronization area 220 between the previous synchronization process and the current synchronization timing.
[0123] This situation is a situation where a file path conflict has occurred, that is, the NAS-side current file and the cloud-side current file have the same file name and different file operations were performed on each of them between the previous synchronization process and the current synchronization process. In this case, NAS10 determines whether "NAS priority", which gives priority to NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S64).
[0124] In step S64, if "NAS priority" is set (step S64: Yes), NAS10 performs a reverse movement process of the cloud-side operation (step S65). The reverse movement process of the cloud-side operation is the same as the process in step S55 above. Next, NAS10 synchronizes the NAS-side current file in the NAS-side synchronization area 140 with the cloud-side synchronization area 220 by uploading the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S66), and ends the processing for the NAS-side current file and the cloud-side current file.
[0125] In step S64, if "cloud priority" instead of "NAS priority" is set (step S64: No), NAS10 performs a movement process of the NAS-side file corresponding to the cloud-side current file (the file with the same ID as the cloud-side current file) with the path of the cloud-side current file as the destination (step S67), and ends the processing for the NAS-side current file and the cloud-side current file.
[0126] In step S63, if the file with the same ID as the current cloud file is not in the old list (step S63: No), it means that the current NAS file and the current cloud file were newly created between the previous synchronization process and the current synchronization timing.
[0127] This situation is one where the NAS current file and the cloud current file have the same file name, and different file operations were performed on them respectively between the previous synchronization process and the current synchronization process, which means that a file path conflict has occurred. In this case, NAS 10 determines whether "NAS priority", which gives priority to NAS 10 over NAS 10 and cloud storage 20, is set based on the priority information 133 (step S68).
[0128] In step S68, if "NAS priority" is set (step S68: Yes), NAS 10 synchronizes the current NAS file in the NAS synchronization area 140 with the cloud synchronization area 220 by uploading the current NAS file in the NAS synchronization area 140 to cloud storage 20 (step S69), and then ends the processing for that current NAS file and the current cloud file.
[0129] In step S68, if "cloud priority" instead of "NAS priority" is set (step S68: No), NAS 10 synchronizes the current cloud file in the cloud synchronization area 220 with the NAS synchronization area 140 by downloading the current cloud file in the cloud synchronization area 220 to NAS 10 (step S70), and then ends the processing for that current NAS file and the current cloud file.
[0130] In step S51, if there is a file in the old list with the same path as the NAS-side current file (step S51: Yes), NAS10 determines whether the ID of the NAS-side current file in the new list is the same as the ID of the NAS-side old file in the old list (whether the NAS-side IDs are the same) (step S71).
[0131] In step S71, if the NAS-side IDs are the same (step S71: Yes), NAS10 determines whether the hash value of the NAS-side current file in the new list is the same as the hash value of the NAS-side old file in the old list (whether the NAS-side hash values are the same) (step S72).
[0132] In step S72, if the NAS-side hash values are the same (step S72: Yes), NAS10 determines whether the ID of the cloud-side current file in the new list is the same as the ID of the cloud-side current file in the old list (whether the cloud-side IDs are the same) (step S73).
[0133] In step S73, if the IDs are the same (step S73: Yes), NAS10 determines whether the hash value of the cloud-side current file in the new list is the same as the hash value of the cloud-side current file in the old list (whether the cloud-side hash values are the same) (step S74).
[0134] In step S74, if the cloud-side hash values are the same (step S74: Yes), for the NAS-side current file and the cloud-side current file, there has been no change from the time after the previous synchronization process to the current synchronization timing. In this case, NAS10 ends the processing for the NAS-side current file and the cloud-side current file without performing any particular file operations.
[0135] In step S74, if the hash values are not the same (step S74: No), for the NAS-side current file, NAS10 determines that there has been no change since the previous synchronization process, and for the cloud-side current file, there has been an update since the previous synchronization process. In this case, NAS10 synchronizes the cloud-side current file in the cloud-side synchronization area 220 to the NAS-side synchronization area 140 by downloading the cloud-side current file in the cloud-side synchronization area 220 to NAS10 (step S75), and then ends the processing for the NAS-side current file and the cloud-side current file.
[0136] In step S73, if the IDs are not the same (step S73: No), NAS10 determines whether a file with the same ID as the cloud-side current file exists in the old list (step S76).
[0137] In step S76, if a file with the same ID as the cloud-side current file exists in the old list (step S76: Yes), it means that the NAS-side current file has not changed from the previous synchronization process to the current synchronization timing, the cloud-side file corresponding to the NAS-side current file after the previous synchronization process has been moved to another path or deleted by the current synchronization timing, and the cloud-side current file has been moved from another path since the previous synchronization process to the current synchronization timing.
[0138] In this case, NAS10 performs a move process on the NAS-side current file with the path of the cloud-side current file as the source (step S77). Next, NAS10 performs a move process on the NAS-side file corresponding to the cloud-side current file (the file with the same ID as the cloud-side current file) with the path of the cloud-side current file as the destination (step S78), and then ends the processing for the NAS-side current file and the cloud-side current file.
[0139] In step S76, if the file with the same ID as the current cloud-side file is not in the old list (step S76: No), it means that the NAS-side current file has not been changed from the previous synchronization process to the current synchronization timing, the cloud-side file corresponding to the NAS-side current file after the previous synchronization process has been moved to another path or deleted by the current synchronization timing, and the cloud-side current file was newly created from the previous synchronization process to the current synchronization timing.
[0140] In this case, NAS10 performs a movement process of the NAS-side current file (similar to step S77) with the path of the cloud-side current file as the source of movement (step S79). Next, NAS10 synchronizes the cloud-side current file in the cloud-side synchronization area 220 to the NAS-side synchronization area 140 by downloading the cloud-side current file in the cloud-side synchronization area 220 to NAS10 (step S80), and ends the processing for the NAS-side current file and the cloud-side current file.
[0141] In step S72, if the hash values are not the same (step S72: No), NAS10 determines whether the ID of the cloud-side current file in the new list is the same as the ID of the cloud-side current file in the old list (whether the cloud-side IDs are the same) (step S81).
[0142] In step S81, if the cloud-side IDs are the same (step S81: Yes), NAS10 determines whether the hash value of the cloud-side current file in the new list is the same as the hash value of the cloud-side current file in the old list (whether the cloud-side hash values are the same) (step S82).
[0143] In step S82, when the hash values on the cloud side are the same (step S82: Yes), for the NAS-side current file, there has been an update from the time point after the previous synchronization process to the current synchronization timing, and for the cloud-side current file, there has been no change from the time point after the previous synchronization process to the current synchronization timing. In this case, NAS10 performs a process of synchronizing the NAS-side current file in the NAS-side synchronization area 140 to the cloud-side synchronization area 220 by uploading the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S83), and ends the process for the NAS-side current file and the cloud-side current file.
[0144] In step S82, when the hash values are not the same (step S82: No), NAS10 is in a state where there have been updates for both the NAS-side current file and the cloud-side current file from the time point after the previous synchronization process.
[0145] This situation is a situation where a file path conflict has occurred, that is, the NAS-side current file and the cloud-side current file have the same file name, and different file operations have been performed on each of them from the time of the previous synchronization process to the current synchronization process. In this case, NAS10 determines whether "NAS priority", which gives priority to NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S84).
[0146] In step S84, when "NAS priority" is set (step S84: Yes), NAS10 performs a process of synchronizing the NAS-side current file in the NAS-side synchronization area 140 to the cloud-side synchronization area 220 by uploading the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S85), and ends the process for the NAS-side current file and the cloud-side current file.
[0147] In step S84, when "cloud priority" instead of "NAS priority" is set (step S84: No), NAS 10 performs a process of synchronizing the current cloud file in the cloud - side synchronization area 220 to the NAS - side synchronization area 140 by downloading the current cloud file in the cloud - side synchronization area 220 to NAS 10 (step S86), and then ends the process for the current NAS - side file and the current cloud - side file.
[0148] In step S81, when the cloud - side IDs are not the same (step S81: No), NAS 10 determines whether a file with the same ID as the current cloud - side file exists in the old list (step S87).
[0149] In step S87, when a file with the same ID as the current cloud - side file exists in the old list (step S87: Yes), it means that the current NAS - side file has been updated from the previous synchronization process to the current synchronization timing, the cloud - side file corresponding to the NAS - side file after the previous synchronization process has been moved to another path or deleted by the current synchronization timing, and the current cloud - side file has been moved from another path from the previous synchronization process to the current synchronization timing.
[0150] This situation is a situation where a file - path conflict has occurred, that is, the current NAS - side file and the current cloud - side file have the same file name and have been subjected to different file operations from the previous synchronization process to the current synchronization process. In this case, NAS 10 determines whether "NAS priority" which prioritizes NAS 10 over NAS 10 and cloud storage 20 is set based on the priority information 133 (step S88).
[0151] In step S88, when "NAS priority" is set (step S88: Yes), NAS 10 cancels the moves made for the cloud-side old file and the cloud-side current file, and performs a reverse move process of the cloud-side operation (step S89). Next, NAS 10 synchronizes the NAS-side current file in the NAS-side synchronization area 140 with the cloud-side synchronization area 220 by uploading the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S90), and ends the processing for the NAS-side current file and the cloud-side current file.
[0152] In step S88, when "cloud priority" instead of "NAS priority" is set (step S88: No), NAS 10 performs a move process of the NAS-side current file with the path of the NAS-side current file as the source (step S91). Next, NAS 10 performs a move process of the NAS-side file corresponding to the cloud-side current file (the file with the same ID as the cloud-side current file) with the path of the cloud-side current file as the destination (step S92), and ends the processing for the NAS-side current file and the cloud-side current file.
[0153] In step S87, when the file with the same ID as the cloud-side current file is not in the old list (step S87: No), the NAS-side current file has been updated from the previous synchronization process to the current synchronization timing, the cloud-side file corresponding to the NAS-side current file after the previous synchronization process has been moved to another path or deleted by the current synchronization timing, and the cloud-side current file has been newly created from the previous synchronization process to the current synchronization timing.
[0154] This situation is a case where a file path conflict occurs, that is, the current NAS-side file and the current cloud-side file have the same file name, and different file operations have been performed on each of them from the previous synchronization process to the current synchronization process. In this case, NAS10 determines whether "NAS priority", which gives priority to NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S93).
[0155] In step S93, if "NAS priority" is set (step S93: Yes), NAS10 cancels the moves made on the cloud-side old file and the cloud-side current file, and performs a reverse move process of the cloud-side operation (step S94). Next, NAS10 synchronizes the NAS-side current file in the NAS-side synchronization area 140 to the cloud-side synchronization area 220 by uploading the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S95), and ends the processing for the NAS-side current file and the cloud-side current file.
[0156] In step S93, if "cloud priority" instead of "NAS priority" is set (step S93: No), NAS10 performs a move process of the NAS-side current file with the path of the NAS-side current file as the source (step S96). Next, NAS10 synchronizes the cloud-side current file in the cloud-side synchronization area 220 to the NAS-side synchronization area 140 by downloading the cloud-side current file in the cloud-side synchronization area 220 to NAS10 (step S97), and ends the processing for the NAS-side current file and the cloud-side current file.
[0157] In step S71, if the NAS-side IDs are not the same (step S71: No), NAS10 determines whether a file with the same ID as the NAS-side current file exists in the old list (step S98).
[0158] In step S98, if a file with the same ID as the NAS-side current file exists in the old list (step S98: Yes), NAS10 determines whether the ID of the cloud-side current file in the new list is the same as the ID of the cloud-side current file in the old list (whether the cloud-side IDs are the same) (step S99).
[0159] In step S99, if the cloud-side IDs are the same (step S99: Yes), NAS10 determines whether the hash value of the cloud-side current file in the new list is the same as the hash value of the cloud-side current file in the old list (whether the cloud-side hash values are the same) (step S100).
[0160] In step S100, if the cloud-side hash values are the same (step S100: Yes), for the NAS-side old file, it has been moved to another path or deleted from the previous synchronization processing time point to the current synchronization timing. For the NAS-side current file, it has been moved from another path from the previous synchronization processing time point to the current synchronization timing. For the cloud-side current file, there has been no change from the previous synchronization processing time point to the current synchronization timing.
[0161] In this case, NAS10 performs the moving process of the cloud-side current file with the path of the cloud-side current file as the source (step S101). Next, NAS10 performs the moving process of the cloud-side file corresponding to the NAS-side current file (the file with the same ID as the NAS-side current file) with the path of the NAS-side current file as the destination (step S102), and ends the processing for the NAS-side current file and the cloud-side current file.
[0162] In step S100, if the hash values are not the same (step S100: No), it means that the NAS-side old file has been moved to another path or deleted between the previous synchronization process and the current synchronization timing, the NAS-side current file has been moved from another path between the previous synchronization process and the current synchronization timing, and the cloud-side current file has been updated between the previous synchronization process and the current synchronization timing.
[0163] This situation is a situation where a file path conflict has occurred, that is, the NAS-side current file and the cloud-side current file have the same file name, and different file operations have been performed on each of them between the previous synchronization process and the current synchronization process. In this case, NAS10 determines whether "NAS priority", which gives priority to NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S103).
[0164] In step S103, if "NAS priority" is set (step S103: Yes), NAS10 performs a move process for the cloud-side current file with the path of the NAS-side current file as the source (step S104). Next, NAS10 performs a move process for the cloud-side file corresponding to the NAS-side current file (the file with the ID corresponding to the NAS-side current file) with the path of the NAS-side current file as the destination (step S105), and ends the processing for the NAS-side current file and the cloud-side current file.
[0165] In step S103, if "cloud priority" instead of "NAS priority" is set (step S103: No), NAS10 performs a reverse move process of the NAS-side operation to cancel the moves performed on the NAS-side old file and the NAS-side current file (step S106).
[0166] Next, NAS10 performs a process of synchronizing the current cloud file in the cloud - side synchronization area 220 to the NAS - side synchronization area 140 by downloading the current cloud file in the cloud - side synchronization area 220 to NAS10 (step S107), and ends the process for the NAS - side current file and the cloud - side current file.
[0167] In step S99, when the cloud - side IDs are not the same (step S99: No), NAS10 determines whether a file with the same ID as the cloud - side current file exists in the old list (step S108).
[0168] In step S108, when a file with the same ID as the cloud - side current file exists in the old list (step S108: Yes), the NAS - side old file has been moved to another path from after the previous synchronization process to the current synchronization timing, the NAS - side current file has been moved from another path from after the previous synchronization process to the current synchronization timing, the cloud - side old file has been moved to another path from after the previous synchronization process to the current synchronization timing, and the cloud - side current file has been moved from another path from after the previous synchronization process to the current synchronization timing.
[0169] This situation is a situation where a file - path conflict has occurred, that is, the NAS - side current file and the cloud - side current file have the same file name and have been subjected to different file operations from after the previous synchronization process to the current synchronization process. In this case, NAS10 determines whether "NAS priority", which prioritizes NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S109).
[0170] In step S109, if "NAS priority" is set (step S109: Yes), NAS10 cancels the moves made for the old cloud-side file and the current cloud-side file, and performs a reverse move process of the cloud-side operation (step S110). Next, NAS10 performs a move process for the current cloud-side file with the path of the current NAS-side file as the source (step S111). Next, NAS10 performs a move process for the cloud-side file corresponding to the current NAS-side file (the file with an ID corresponding to the current NAS-side file) with the path of the current NAS-side file as the destination (step S112), and ends the process for the current NAS-side file and the current cloud-side file.
[0171] In step S109, if "cloud priority" instead of "NAS priority" is set (step S109: No), NAS10 cancels the moves made for the old NAS-side file and the current NAS-side file, and performs a reverse move process of the NAS-side operation (step S113). Next, NAS10 performs a move process for the current NAS-side file with the path of the current NAS-side file as the source (step S114). Next, NAS10 performs a move process for the NAS-side file corresponding to the current cloud-side file (the file with an ID corresponding to the current cloud-side file) with the path of the current NAS-side file as the destination (step S115), and ends the process for the current NAS-side file and the current cloud-side file.
[0172] In step S108, if the file with the same ID as the current cloud-side file is not in the old list (step S108: No), the situation is that the old NAS-side file has been moved to another path from after the previous synchronization process to the current synchronization timing, the current NAS-side file has been moved from another path from after the previous synchronization process to the current synchronization timing, and the current cloud-side file has been newly created from after the previous synchronization process to the current synchronization timing.
[0173] This situation is a case where a file path conflict has occurred, meaning that the current NAS-side file and the current cloud-side file have the same file name and different file operations have been performed on each of them from the previous synchronization process to the current synchronization process. In this case, NAS 10 determines whether "NAS priority", which prioritizes NAS 10 over the cloud storage 20, is set based on the priority information 133 (step S116).
[0174] In step S116, if "NAS priority" is set (step S116: Yes), NAS 10 cancels the move performed on the cloud-side current file and performs a reverse move process of the cloud-side operation (step S117). Next, NAS 10 performs a move process of the cloud-side current file with the path of the NAS-side current file as the source (step S118). Next, NAS 10 performs a move process of the cloud-side file corresponding to the NAS-side current file (the file with an ID corresponding to the NAS-side current file) with the path of the NAS-side current file as the destination (step S119), and ends the processing for the NAS-side current file and the cloud-side current file.
[0175] In step S116, if "cloud priority" instead of "NAS priority" is set (step S116: No), NAS 10 cancels the move performed on the NAS-side old file and the creation of the NAS-side current file, and performs a reverse move process of the NAS-side operation (step S120). Next, NAS 10 performs a move process of the NAS-side current file with the path of the NAS-side current file as the source (step S121). Next, NAS 10 synchronizes the cloud-side current file in the cloud-side synchronization area 220 with the NAS-side synchronization area 140 by downloading the cloud-side current file in the cloud-side synchronization area 220 to NAS 10 (step S122), and ends the processing for the NAS-side current file and the cloud-side current file.
[0176] In step S98, if a file with the same ID as the NAS-side current file is not in the old list (step S98: No), NAS10 determines whether the ID of the cloud-side current file in the new list is the same as the ID of the cloud-side current file in the old list (whether the cloud-side IDs are the same) (step S123).
[0177] In step S123, if the cloud-side IDs are the same (step S123: Yes), NAS10 determines whether the hash value of the cloud-side current file in the new list is the same as the hash value of the cloud-side current file in the old list (whether the cloud-side hash values are the same) (step S124).
[0178] In step S124, if the cloud-side hash values are the same (step S124: Yes), the NAS-side old file has been moved to another path or deleted between the time point after the previous synchronization process and the current synchronization timing, the NAS-side current file has been newly created between the time point after the previous synchronization process and the current synchronization timing, and the cloud-side current file has not changed between the time point after the previous synchronization process and the current synchronization timing.
[0179] In this case, NAS10 performs a move process for the cloud-side current file with the path of the NAS-side current file as the source (step S125). Next, NAS10 uploads the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 to synchronize the NAS-side current file in the NAS-side synchronization area 140 with the cloud-side synchronization area 220 (step S126), and ends the process for the NAS-side current file and the cloud-side current file.
[0180] In step S124, if the hash values are not the same (step S124: No), it means that the NAS-side old file has been moved to another path or deleted between the previous synchronization process and the current synchronization timing, the NAS-side current file has been newly created between the previous synchronization process and the current synchronization timing, and the cloud-side current file has been updated between the previous synchronization process and the current synchronization timing.
[0181] This situation is a situation where a file path conflict has occurred, that is, the NAS-side current file and the cloud-side current file have the same file name and different file operations have been performed on each of them between the previous synchronization process and the current synchronization process. In this case, NAS10 determines whether "NAS priority", which prioritizes NAS10 among NAS10 and cloud storage 20, is set based on the priority information 133 (step S127).
[0182] In step S127, if "NAS priority" is set (step S127: Yes), NAS10 performs a moving process of the cloud-side current file with the path of the NAS-side current file as the source (step S128). Next, NAS10 synchronizes the NAS-side current file in the NAS-side synchronization area 140 with the cloud-side synchronization area 220 by uploading the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S129), and ends the processing for the NAS-side current file and the cloud-side current file.
[0183] In step S127, if "cloud priority" instead of "NAS priority" is set (step S127: No), NAS10 performs a reverse moving process of the NAS-side operation to cancel the moving performed on the NAS-side old file and the new creation of the NAS-side current file (step S130).
[0184] Next, NAS10 performs a process of synchronizing the current cloud file in the cloud - side synchronization area 220 to the NAS - side synchronization area 140 by downloading the current cloud file in the cloud - side synchronization area 220 to NAS10 (step S131), and ends the process for the NAS - side current file and the cloud - side current file.
[0185] In step S123, when the cloud - side IDs are not the same (step S123: No), NAS10 determines whether a file with the same ID as the cloud - side current file exists in the old list (step S132).
[0186] In step S132, when a file with the same ID as the cloud - side current file exists in the old list (step S132: Yes), the NAS - side old file has been moved to another path from after the previous synchronization process to the current synchronization timing, the NAS - side current file has been newly created from after the previous synchronization process to the current synchronization timing, the cloud - side old file has been moved to another path from after the previous synchronization process to the current synchronization timing, and the cloud - side current file has been moved from another path from after the previous synchronization process to the current synchronization timing.
[0187] This situation is a situation where a file - path conflict has occurred, that is, the NAS - side current file and the cloud - side current file have the same file name and have been subjected to different file operations from after the previous synchronization process to the current synchronization process. In this case, NAS10 determines whether "NAS priority", which gives priority to NAS10 over NAS10 and cloud storage 20, is set based on the priority information 133 (step S133).
[0188] In step S133, when "NAS priority" is set (step S133: Yes), NAS 10 cancels the moves made for the cloud - side old file and the cloud - side current file, and performs a reverse move process of the cloud - side operation (step S134). Next, NAS 10 performs a move process of the cloud - side current file with the path of the NAS - side current file as the source (step S135). Next, NAS 10 synchronizes the NAS - side current file in the NAS - side synchronization area 140 with the cloud - side synchronization area 220 by uploading the NAS - side current file in the NAS - side synchronization area 140 to the cloud storage 20 (step S136), and ends the process for the NAS - side current file and the cloud - side current file.
[0189] In step S133, when "cloud priority" instead of "NAS priority" is set (step S133: No), NAS 10 cancels the move made for the NAS - side old file and the new creation of the NAS - side current file, and performs a reverse move process of the NAS - side operation (step S137). Next, NAS 10 performs a move process of the NAS - side current file with the path of the NAS - side current file as the source (step S138). Next, NAS 10 performs a move process of the NAS - side file corresponding to the cloud - side current file (the file with the same ID as the cloud - side current file) with the path of the NAS - side current file as the destination (step S139), and ends the process for the NAS - side current file and the cloud - side current file.
[0190] In step S132, when the file with the same ID as the cloud - side current file is not in the old list (step S132: No), it is a situation where the NAS - side old file has been moved to another path from the previous synchronization process to the current synchronization timing, the NAS - side current file has been newly created from the previous synchronization process to the current synchronization timing, and the cloud - side current file has been newly created from the previous synchronization process to the current synchronization timing.
[0191] This situation is a scenario where a file path conflict occurs, meaning that the current NAS-side file and the current cloud-side file have the same file name and different file operations have been performed on each of them from the previous synchronization process to the current synchronization process. In this case, NAS 10 determines whether "NAS priority", which prioritizes NAS 10 over the cloud storage 20, is set based on the priority information 133 (step S140).
[0192] In step S140, if "NAS priority" is set (step S140: Yes), NAS 10 cancels the move performed on the cloud-side current file and performs a reverse move process of the cloud-side operation (step S141). Next, NAS 10 performs a move process of the cloud-side current file with the path of the NAS-side current file as the source (step S142). Next, NAS 10 synchronizes the NAS-side current file in the NAS-side synchronization area 140 with the cloud-side synchronization area 220 by uploading the NAS-side current file in the NAS-side synchronization area 140 to the cloud storage 20 (step S143), and ends the process for the NAS-side current file and the cloud-side current file.
[0193] In step S140, if "cloud priority" instead of "NAS priority" is set (step S140: No), NAS 10 cancels the move performed on the NAS-side old file and the creation of the NAS-side current file, and performs a reverse move process of the NAS-side operation (step S144). Next, NAS 10 performs a move process of the NAS-side current file with the path of the NAS-side current file as the source (step S145). Next, NAS 10 synchronizes the cloud-side current file in the cloud-side synchronization area 220 with the NAS-side synchronization area 140 by downloading the cloud-side current file in the cloud-side synchronization area 220 to NAS 10 (step S146), and ends the process for the NAS-side current file and the cloud-side current file.
[0194] <Example of Synchronization Process> FIG. 16 is a diagram showing Example 1 of the synchronization process. In Example 1 of the synchronization process, as the initial file configuration, in the NAS-side synchronization area 140 (NAS side) of the NAS 10, a file with a path of "a1.txt" and an ID of "123" is stored, and in the cloud-side synchronization area 220 (cloud side) of the cloud storage 20, a file with a path of "a1.txt" and an ID of "001" is stored.
[0195] The cloud-side ID "001" corresponds to the NAS-side ID "123". That is, "a1.txt" (ID "123") in the NAS-side synchronization area 140 and "a1.txt" (ID "001") in the cloud-side synchronization area 220 are the same synchronized file.
[0196] In Example 1 of the synchronization process, the case where no file operations are performed in both the NAS-side synchronization area 140 and the cloud-side synchronization area 220 will be described. In this case, the file configuration after the operation is the same as the initial file configuration. Also, the file configuration after the synchronization process is the same as the initial file configuration.
[0197] FIG. 17 is a diagram showing Example 2 of the synchronization process. The initial file configuration in Example 2 of the synchronization process is the same as the initial file configuration in Example 1 of the synchronization process. In Example 2 of the synchronization process, the case where a rename is performed only on the NAS side will be described. Specifically, in Example 2 of the synchronization process, in the NAS-side synchronization area 140, "a1.txt" (ID "123") is renamed (moved) to "a2.txt" (ID "123").
[0198] In this case, no file path conflict occurs, and regardless of whether the priority setting indicated by the priority information 133 is "NAS priority" or "cloud priority", the rename (move) performed in the NAS-side synchronization area 140 is reflected in the cloud-side synchronization area 220. Specifically, in the cloud-side synchronization area 220, "a1.txt" (ID "001") is renamed (moved) to "a2.txt" (ID "001").
[0199] As a result, in the file configuration after the synchronization process, "a2.txt" (ID "123") is stored in the NAS-side synchronization area 140 (NAS side), and the file "a2.txt" (ID "001") is stored in the cloud-side synchronization area 220 (cloud side).
[0200] FIG. 18 is a diagram showing Example 3 of the synchronization process. The initial file configuration in Example 3 of the synchronization process is the same as the initial file configuration in Example 1 of the synchronization process. In Example 3 of the synchronization process, the case where renaming is performed only on the cloud side will be described. Specifically, in Example 3 of the synchronization process, "a1.txt" (ID "001") is renamed (moved) to "a2.txt" (ID "001") in the cloud-side synchronization area 220.
[0201] In this case, no file path conflict occurs, and regardless of whether the priority setting indicated by the priority information 133 is "NAS priority" or "cloud priority", the renaming (movement) performed in the cloud-side synchronization area 220 is reflected in the NAS-side synchronization area 140. Specifically, in the NAS-side synchronization area 140, "a1.txt" (ID "123") is renamed (moved) to "a2.txt" (ID "123").
[0202] As a result, in the file configuration after the synchronization process, "a2.txt" (ID "123") is stored in the NAS-side synchronization area 140 (NAS side), and "a2.txt" (ID "001") is stored in the cloud-side synchronization area 220 (cloud side).
[0203] FIG. 19 is a diagram showing Example 4 of the synchronization process. The initial file configuration in Example 4 of the synchronization process is the same as the initial file configuration in Example 1 of the synchronization process. In Example 4 of the synchronization process, the case where renaming is performed with the same name on the NAS side and the cloud side will be described. Specifically, in Example 4 of the synchronization process, in the NAS-side synchronization area 140, "a1.txt" (ID "123") is renamed (moved) to "a2.txt" (ID "123"), and in the cloud-side synchronization area 220, "a1.txt" (ID "001") is renamed (moved) to "a2.txt" (ID "001").
[0204] In this case, although renaming is performed on the NAS side and the cloud side, since the file operations in each are the same, no file path conflict occurs, and regardless of whether the priority setting indicated by the priority information 133 is "NAS priority" or "cloud priority", after the synchronization process, the file configuration is such that "a2.txt" (ID "123") is stored in the NAS-side synchronization area 140 (NAS side), and "a2.txt" (ID "001") is stored in the cloud-side synchronization area 220 (cloud side).
[0205] FIG. 20 is a diagram showing Example 5 of the synchronization process. The initial file configuration in Example 5 of the synchronization process is the same as the initial file configuration in Example 1 of the synchronization process. In Example 5 of the synchronization process, the case where renaming is performed with different names on the NAS side and the cloud side will be described. Specifically, in Example 5 of the synchronization process, in the NAS-side synchronization area 140, "a1.txt" (ID "123") is renamed (moved) to "a2.txt" (ID "123"), and in the cloud-side synchronization area 220, "a1.txt" (ID "001") is renamed (moved) to "a3.txt" (ID "001").
[0206] In Example 5 of the synchronization process, when the priority setting indicated by the priority information 133 is "NAS priority", the synchronization process is performed in a state where the renaming on the NAS side is prioritized over the renaming on the cloud side. As a result, in the file configuration after the synchronization process, "a2.txt" (ID "123") is stored in the NAS-side synchronization area 140 (NAS side), and "a2.txt" (ID "001") is stored in the cloud-side synchronization area 220 (cloud side).
[0207] In Example 5 of the synchronization process, when the priority setting indicated by the priority information 133 is "cloud priority", the synchronization process is performed in a state where the renaming on the cloud side is prioritized over the renaming on the NAS side. As a result, in the file configuration after the synchronization process, "a3.txt" (ID "123") is stored in the NAS-side synchronization area 140 (NAS side), and "a3.txt" (ID "001") is stored in the cloud-side synchronization area 220 (cloud side).
[0208] FIG. 21 is a diagram showing Example 6 of the synchronization process. The initial file configuration in Example 6 of the synchronization process is an empty state where no files are stored in the NAS-side synchronization area 140 (NAS side) and the cloud-side synchronization area 220 (cloud side).
[0209] In Example 6 of the synchronization process, the case where files are newly created with the same name on both the NAS side and the cloud side will be described. Specifically, in Example 6 of the synchronization process, "a1.txt" (ID "123") is newly created in the NAS-side synchronization area 140, and "a1.txt" (ID "001") is newly created in the cloud-side synchronization area 220.
[0210] In Example 6 of the synchronization process, when the priority setting indicated by the priority information 133 is "NAS priority", the synchronization process is performed to prioritize the new creation on the NAS side over the new creation on the cloud side. As a result, after the synchronization process, the file configuration is such that "a1.txt" (ID "123") is stored in the NAS-side synchronization area 140 (NAS side), and "a1.txt" (ID "002") is stored in the cloud-side synchronization area 220 (cloud side). "a1.txt" (ID "001") in the cloud-side synchronization area 220 is deleted.
[0211] In Example 6 of the synchronization process, when the priority setting indicated by the priority information 133 is "cloud priority", the synchronization process is performed to prioritize the new creation on the cloud side over the new creation on the NAS side. As a result, after the synchronization process, the file configuration is such that "a1.txt" (ID "456") is stored in the NAS-side synchronization area 140 (NAS side), and "a1.txt" (ID "001") is stored in the cloud-side synchronization area 220 (cloud side). "a1.txt" (ID "123") in the NAS-side synchronization area 140 is deleted.
[0212] FIG. 22 is a diagram showing Example 7 of the synchronization process. The initial file configuration in Example 7 of the synchronization process is the same as the initial file configuration in Example 1 of the synchronization process.
[0213] Example 7 of the synchronization process will explain the case where the created file name on the NAS side collides with the rename on the cloud side. Specifically, in Example 7 of the synchronization process, "a2.txt" (ID "456") is newly created in the NAS-side synchronization area 140, and "a1.txt" (ID "001") in the cloud-side synchronization area 220 is renamed (moved) to "a2.txt" (ID "001"). That is, the paths of "a2.txt" (ID "456") newly created in the NAS-side synchronization area 140 and "a2.txt" (ID "001") renamed (moved) in the cloud-side synchronization area 220 collide (conflict).
[0214] In Example 7 of the synchronization process, when the priority setting indicated by the priority information 133 is "NAS priority", the synchronization process is performed in such a way that the creation on the NAS side is prioritized over the cloud-side rename (move). As a result, after the synchronization process, in the NAS-side synchronization area 140 (NAS side), "a1.txt" (ID "123") and "a2.txt" (ID "456") are stored, and in the cloud-side synchronization area 220 (cloud side), "a1.txt" (ID "001") and "a2.txt" (ID "002") are stored.
[0215] In Example 7 of the synchronization process, when the priority setting indicated by the priority information 133 is "cloud priority", the synchronization process is performed in such a way that the cloud-side rename (move) is prioritized over the creation on the NAS side. As a result, after the synchronization process, in the NAS-side synchronization area 140 (NAS side), "a2.txt" (ID "123") is stored, and in the cloud-side synchronization area 220 (cloud side), "a2.txt" (ID "001") is stored. "a2.txt" (ID "456") in the NAS-side synchronization area 140 is deleted.
[0216] FIG. 23 is a diagram showing Example 8 of the synchronization process. The initial file configuration in Example 8 of the synchronization process is the same as the initial file configuration in Example 1 of the synchronization process.
[0217] Example 8 of the synchronization process explains the case where the created file name on the NAS side collides with the rename on the cloud side. Specifically, in Example 8 of the synchronization process, in the NAS-side synchronization area 140, "a1.txt" (ID "123") is renamed (moved) to "a2.txt" (ID "123"), and in the cloud-side synchronization area 220, "a2.txt" (ID "002") is newly created. That is, the paths of "a2.txt" (ID "123") renamed (moved) in the NAS-side synchronization area 140 and "a2.txt" (ID "002") newly created in the cloud-side synchronization area 220 collide (conflict).
[0218] In Example 8 of the synchronization process, when the priority setting indicated by the priority information 133 is "NAS priority", the synchronization process is performed in a state where the rename (move) on the NAS side is prioritized over the new creation on the cloud side. As a result, after the synchronization process, the file configuration is such that "a2.txt" (ID "123") is stored in the NAS-side synchronization area 140 (NAS side), and "a2.txt" (ID "001") is stored in the cloud-side synchronization area 220 (cloud side). "a2.txt" (ID "002") in the cloud-side synchronization area 220 is deleted.
[0219] In Example 8 of the synchronization process, when the priority setting indicated by the priority information 133 is "cloud priority", the synchronization process is performed in a state where the new creation on the cloud side is prioritized over the rename (move) on the NAS side. As a result, after the synchronization process, the file configuration is such that "a1.txt" (ID "123") and "a2.txt" (ID "456") are stored in the NAS-side synchronization area 140 (NAS side), and "a1.txt" (ID "001") and "a2.txt" (ID "002") are stored in the cloud-side synchronization area 220 (cloud side).
[0220] FIG. 24 is a diagram showing Example 9 of the synchronization process. In Example 9 of the synchronization process, as the initial file configuration, "a1.txt" (ID "123") and "a2.txt" (ID "456") are stored in the NAS-side synchronization area 140 (NAS side), and "a1.txt" (ID "001") and "a2.txt" (ID "002") are stored in the cloud-side synchronization area 220 (cloud side).
[0221] In Example 9 of the synchronization process, the case where the renamed names of different files on the NAS side and the cloud side collide will be described. Specifically, in Example 9 of the synchronization process, in the NAS-side synchronization area 140, "a1.txt" (ID "123") is renamed (moved) to "a3.txt" (ID "123"), and in the cloud-side synchronization area 220, "a2.txt" (ID "002") is renamed (moved) to "a3.txt" (ID "002"). That is, the paths of "a3.txt" (ID "123") renamed (moved) in the NAS-side synchronization area 140 and "a3.txt" (ID "002") renamed (moved) in the cloud-side synchronization area 220 collide (conflict).
[0222] In Example 9 of the synchronization process, when the priority setting indicated by the priority information 133 is "NAS priority", the synchronization process is performed with the NAS-side rename (move) being prioritized over the cloud-side rename (move). As a result, after the synchronization process, the file configuration is such that "a3.txt" (ID "123") and "a2.txt" (ID "456") are stored in the NAS-side synchronization area 140 (NAS side), and "a3.txt" (ID "001") and "a2.txt" (ID "002") are stored in the cloud-side synchronization area 220 (cloud side).
[0223] In Example 9 of the synchronization process, when the priority setting indicated by the priority information 133 is "cloud priority", the synchronization process is performed with the cloud-side rename (move) being prioritized over the NAS-side rename (move). As a result, after the synchronization process, the file configuration is such that "a1.txt" (ID "123") and "a3.txt" (ID "456") are stored in the NAS-side synchronization area 140 (NAS side), and "a1.txt" (ID "001") and "a3.txt" (ID "002") are stored in the cloud-side synchronization area 220 (cloud side).
[0224] As described above, the NAS 10 (control device) performs file synchronization between the NAS-side synchronization area 140 (first storage) of the NAS 10 and the cloud-side synchronization area 220 (second storage) of the cloud storage 20. Then, the NAS 10 includes a file list 111 (first file list) including the path of the file stored in the NAS-side synchronization area 140 and the first file identifier (ID), and a file list 112 (second file list) including the path of the file stored in the cloud-side synchronization area 220 and the second file identifier (ID). Based on the ID correspondence information 113 (identifier correspondence information) that associates the first file identifier and the second file identifier of the files stored in both the NAS-side synchronization area 140 and the cloud-side synchronization area 220, the NAS 10 performs file synchronization processing between the NAS-side synchronization area 140 and the cloud-side synchronization area 220.
[0225] Also, in the synchronization process, when the NAS 10 determines that a file path conflict has occurred between the NAS-side synchronization area 140 and the cloud-side synchronization area 220, based on the set priority information 133, the NAS 10 synchronizes the conflicting file of the priority storage, which is prioritized between the NAS-side synchronization area 140 and the cloud-side synchronization area 220, to the other non-priority storage, and does not synchronize the conflicting file of the non-priority storage to the priority storage.
[0226] Thereby, for example, compared with a configuration in which a file is saved under a different name when a file path conflict occurs, even if a conflict occurs in the synchronization process, it is possible to prevent the cooperation with the history function of the cloud storage from becoming complicated, the relationship of the files to be synchronized from becoming complicated and the management from becoming cumbersome (for example, an increase in the management ID), and the storage capacities of both the NAS 10 and the cloud storage 20 from being compressed.
[0227] In addition, when the path of the conflicting file in the non-priority storage has been changed during the period since the previous synchronization process, NAS10 restores the path of the conflicting file in the non-priority storage and then synchronizes the conflicting file in the priority storage to the non-priority storage. Thereby, while preserving the file that has become a conflicting file due to being changed during the period since the previous synchronization process in the non-priority storage, the conflicting file in the priority storage can be preferentially synchronized to the non-priority storage.
[0228] In addition, when the conflicting file in the non-priority storage has been created during the period since the previous synchronization process, for example, NAS10 deletes the conflicting file in the non-priority storage and then synchronizes the conflicting file in the priority storage to the non-priority storage. Thereby, the conflicting file in the priority storage can be preferentially synchronized to the non-priority storage.
[0229] Alternatively, when the conflicting file in the non-priority storage has been created during the period since the previous synchronization process, NAS10 may synchronize to the non-priority storage by overwriting the conflicting file in the priority storage with the conflicting file in the non-priority storage. Thereby, the conflicting file in the priority storage can be preferentially synchronized to the non-priority storage.
[0230] In addition, NAS10 repeatedly performs the acquisition of the file lists 111 and 112 and the file synchronization process between the NAS-side synchronization area 140 and the cloud-side synchronization area 220 at a predetermined synchronization timing. Thereby, the folders and files in the NAS-side synchronization area 140 and the folders and files in the cloud-side synchronization area 220 can be automatically made to have the same content.
[0231] Further, the NAS 10 performs the current synchronization process based on the file list 111 (old list) at the first time point when the previous synchronization process was performed, the file list 111 (new list) at the second time point when the current synchronization process is performed, the file list 112 (old list) at the first time point, and the file list 112 (new list) at the second time point. Thereby, the states of the NAS-side synchronization area 140 and the cloud-side synchronization area 220 at the time when the previous synchronization process was performed and the states of the NAS-side synchronization area 140 and the cloud-side synchronization area 220 at the time when the current synchronization process is performed are compared, operations performed on the NAS-side synchronization area 140 and the cloud-side synchronization area 220 from the time when the previous synchronization process was performed until now are identified, and file synchronization processing between the NAS-side synchronization area 140 and the cloud-side synchronization area 220 can be performed.
[0232] In the file synchronization process between the NAS-side synchronization area 140 and the cloud-side synchronization area 220, the NAS 10 identifies files based on the first file identifier and the second file identifier.
[0233] For example, in the file synchronization process between the NAS-side synchronization area 140 and the cloud-side synchronization area 220, the NAS 10 associates the files included in the file list 111 at the first time point when the previous synchronization process was performed with the files included in the file list 111 at the second time point when the current synchronization process is performed by the first file identifier. Also, the NAS 10 associates the files included in the file list 112 at the first time point with the files included in the file list 112 at the second time point by the second file identifier. In this way, for each of the NAS-side synchronization area 140 and the cloud-side synchronization area 220, the NAS 10 associates the current file with the old file by the file identifier.
[0234] Also, in the file synchronization process between the NAS-side synchronization area 140 and the cloud-side synchronization area 220, the NAS 10 associates the files included in the file list 111 and the files included in the file list 112 with each other using the first file identifier, the second file identifier, and the ID correspondence information 113. Thereby, it becomes possible to determine how a file path conflict has occurred and perform appropriate conflict processing.
[0235] <Modification Example 1> Although the NAS 10 has been described as an example of a control device that synchronizes files between the first storage and the second storage, the control device is not limited to the NAS 10. For example, the control device may be the cloud storage 20, may be the management server 30, may be the information terminal 3, or may be any other device capable of communicating between the NAS 10 and the cloud storage 20.
[0236] <Modification Example 2> Also, although the NAS-side synchronization area 140 of the NAS 10 and the cloud-side synchronization area 220 of the cloud storage 20 have been described as examples of the first storage and the second storage, the first storage and the second storage are not limited to these. For example, each of the first storage and the second storage may be a storage of a NAS, may be a storage of a personal computer, may be a storage of a server, or may be a cloud storage.
[0237] <Control Program> Incidentally, the control method described in the above-described embodiment can be realized by a computer executing a control program prepared in advance. This control program is stored in a computer-readable storage medium and is executed by being read from the storage medium. Further, this control program may be provided in a form stored in a non-transitory storage medium such as a flash memory, or may be provided via a network such as the Internet. The computer that executes this control program may be included in the control device, may be included in an electronic device such as a smartphone, a tablet terminal, or a personal computer that can communicate with the control device, or may be included in a server device that can communicate with these control devices and electronic devices.
[0238] As described above, the following matters are disclosed in this specification.
[0239] The disclosed control device is a control device that synchronizes files between a first storage and a second storage, and includes a first file list including a file path and a first file identifier stored in the first storage, a second file list including a file path and a second file identifier stored in the second storage, and identifier correspondence information that associates the first file identifier and the second file identifier of the files stored in both the first storage and the second storage. Based on this, file synchronization processing is performed between the first storage and the second storage. In the synchronization processing, when it is determined that a file path conflict has occurred between the first storage and the second storage, based on the set priority information, the conflicting file of the prioritized storage among the first storage and the second storage is synchronized to the other storage. It is provided with a control unit.
[0240] In the disclosed control device, when a conflict in the file path occurs, the control unit does not synchronize the conflicting file of the other storage to the prioritized storage.
[0241] In the disclosed control device, when the path of the conflicting file in the other storage has been changed during the period since the previous synchronization process, the control unit returns the path of the conflicting file in the other storage and then synchronizes the conflicting file in the prioritized storage to the other storage.
[0242] In the disclosed control device, when the conflicting file in the other storage has been created during the period since the previous synchronization process, the control unit deletes the conflicting file in the other storage and then synchronizes the conflicting file in the prioritized storage to the other storage.
[0243] In the disclosed control device, when the conflicting file in the other storage has been created during the period since the previous synchronization process, the control unit synchronizes the conflicting file in the prioritized storage to the other storage by overwriting the conflicting file in the other storage with the conflicting file in the prioritized storage.
[0244] In the disclosed control device, the control unit repeatedly performs the acquisition of the first file list and the second file list and the synchronization process at a predetermined synchronization timing.
[0245] In the disclosed control device, the control unit performs the synchronization process based on the first file list at the first time point when the previous synchronization process was performed, the first file list at the second time point when the current synchronization process is performed, the second file list at the first time point, and the second file list at the second time point.
[0246] In the disclosed control device, the first file identifier and the second file identifier are generated at the time of file creation and are not changed by changes in the file path and updates to the file content.
[0247] The disclosed control device is such that the file path conflict is a state where the file paths of a first file stored in the first storage and a second file stored in the second storage are the same, and operations on the first file and the second file have been performed during the period since the previous synchronization process.
[0248] The disclosed control device is such that the control unit identifies files based on the first file identifier and the second file identifier in the synchronization process.
[0249] The disclosed control device is such that the control unit, in the synchronization process, associates the files included in the first file list at a first time point when the previous synchronization process was performed with the files included in the first file list at a second time point when the current synchronization process is performed by the first file identifier, and associates the files included in the second file list at the first time point with the files included in the second file list at the second time point by the second file identifier.
[0250] The disclosed control device is such that the control unit, in the synchronization process, associates the files included in the first file list with the files included in the second file list by the first file identifier, the second file identifier, and the identifier correspondence information.
[0251] The disclosed control device is such that the identifier correspondence information is created when synchronizing a file created in the first storage to the second storage and when synchronizing a file created in the second storage to the first storage.
[0252] The disclosed control method is a control method by a control device that synchronizes files between a first storage and a second storage. The processor of the control device performs file synchronization processing between the first storage and the second storage based on a first file list including file paths and first file identifiers of files stored in the first storage, a second file list including file paths and second file identifiers of files stored in the second storage, and identifier correspondence information that associates the first file identifiers and the second file identifiers of files stored in both the first storage and the second storage. In the synchronization processing, when it is determined that a file path conflict has occurred between the first storage and the second storage, based on the set priority information, the conflicting file of the prioritized storage among the first storage and the second storage is synchronized to the other storage.
[0253] The disclosed control program is a control program for a control device that synchronizes files between a first storage and a second storage. Based on a first file list including file paths and first file identifiers of files stored in the first storage, a second file list including file paths and second file identifiers of files stored in the second storage, and identifier correspondence information that associates the first file identifiers and the second file identifiers of files stored in both the first storage and the second storage, the processor of the control device performs file synchronization processing between the first storage and the second storage. In the synchronization processing, when it is determined that a file path conflict has occurred between the first storage and the second storage, based on the set priority information, the processor causes the conflicting file of the prioritized storage among the first storage and the second storage to be synchronized to the other storage.
Description of Reference Numerals
[0254] 1 Synchronization Processing System 2 Networks 3 Information Terminals 10 NAS 20 Cloud Storage 30 Management Server 100 Information Processing Device 101 Processor 102 Main Memory 103 Storage 104 Communication Interface 109 Bus 110 File List Management Section 111, 112, 211 File Lists 113 ID - Corresponding Information 114 NAS - Side Movement Candidate List 115 Cloud - Side Movement Candidate List 120 File Operation Detection Section 130 Synchronization Processing Section 131 NAS - Side Processing Section 132 Cloud Storage - Side Processing Section 133 Priority Information 140 NAS - Side Synchronization Area 150, 240 Communication Sections 210 File Management Section 212 History Information 220 Cloud - Side Synchronization Area 230 Backup Area
Claims
1. A control device that synchronizes files between a first storage device and a second storage device, performing file synchronization processing between the first storage and the second storage based on a first file list including paths and first file identifiers of files stored in the first storage, a second file list including paths and second file identifiers of files stored in the second storage, and identifier correspondence information that associates the first file identifiers and the second file identifiers of files stored in both the first storage and the second storage; When it is determined that a file path conflict has occurred between the first storage and the second storage in the synchronization process, the conflicting file in the storage that has a higher priority among the first storage and the second storage is synchronized with the other storage based on set priority information. A control device having a control unit.
2. The control device according to claim 1 , the control unit, when a conflict in the file path occurs, does not synchronize the conflicting file in the other storage with the prioritized storage; Control device.
3. The control device according to claim 1 , when a path of the conflicting file in the other storage device has been changed during a period since a previous synchronization process, the control unit restores the path of the conflicting file in the other storage device, and then synchronizes the conflicting file in the prioritized storage device with the other storage device; Control device.
4. The control device according to claim 1 , when the conflicting file in the other storage device has been created during a period since a previous synchronization process, the control unit deletes the conflicting file in the other storage device and then synchronizes the conflicting file in the prioritized storage device with the other storage device; Control device.
5. The control device according to claim 1 , the control unit, when the conflicting file of the other storage device has been created during a period since a previous synchronization process, overwrites the conflicting file of the prioritized storage device with the conflicting file of the other storage device, thereby synchronizing the conflicting file of the other storage device with the conflicting file of the prioritized storage device. Control device.
6. The control device according to claim 1 , the control unit repeatedly performs acquisition of the first file list and the second file list and the synchronization process at a predetermined synchronization timing. Control device.
7. The control device according to claim 1 , the control unit performs the synchronization process based on the first file list at a first time point when the previous synchronization process was performed, the first file list at a second time point when the current synchronization process is performed, the second file list at the first time point, and the second file list at the second time point. Control device.
8. The control device according to claim 1 , The first file identifier and the second file identifier are generated when a file is created, and are not changed by changes in the file path and updates to the file contents. Control device.
9. The control device according to claim 1 , The file path conflict is a state in which a file path of a first file stored in the first storage and a file path of a second file stored in the second storage are the same, and an operation of the first file and an operation of the second file have been performed during a period from a previous synchronization process. Control device.
10. The control device according to claim 1 , the control unit identifies a file based on the first file identifier and the second file identifier in the synchronization process. Control device.
11. The control device according to claim 10, The control unit, in the synchronization process, Correlating a file included in the first file list at a first point in time when the previous synchronization process was performed with a file included in the first file list at a second point in time when the current synchronization process is performed, using the first file identifier; Correlating the files included in the second file list at the first time point with the files included in the second file list at the second time point using the second file identifiers; Control device.
12. The control device according to claim 10, the control unit, in the synchronization process, associates the files included in the first file list with the files included in the second file list using the first file identifier, the second file identifier, and the identifier correspondence information; Control device.
13. A control device according to any one of claims 1 to 12, the identifier correspondence information is created when a file created in the first storage is synchronized with the second storage and when a file created in the second storage is synchronized with the first storage; Control device.
14. A control method for synchronizing a file between a first storage device and a second storage device, comprising: A processor of the control device performing file synchronization processing between the first storage and the second storage based on a first file list including paths and first file identifiers of files stored in the first storage, a second file list including paths and second file identifiers of files stored in the second storage, and identifier correspondence information that associates the first file identifiers and the second file identifiers of files stored in both the first storage and the second storage; When it is determined that a file path conflict has occurred between the first storage and the second storage in the synchronization process, the conflicting file in the storage that has a higher priority among the first storage and the second storage is synchronized with the other storage based on set priority information. Control methods.
15. A control program for a control device that synchronizes files between a first storage device and a second storage device, comprising: A processor of the control device performing file synchronization processing between the first storage and the second storage based on a first file list including paths and first file identifiers of files stored in the first storage, a second file list including paths and second file identifiers of files stored in the second storage, and identifier correspondence information that associates the first file identifiers and the second file identifiers of files stored in both the first storage and the second storage; When it is determined that a file path conflict has occurred between the first storage and the second storage in the synchronization process, the conflicting file in the storage that has a higher priority among the first storage and the second storage is synchronized with the other storage based on set priority information. A control program that executes a process.