The present application claims priority to Japanese Patent Application No. 2011-112923 filed on May 19, 2011, the disclosure of which is hereby incorporated by reference in its entirety.
1. Field of the Disclosure
The present disclosure relates to a file managing apparatus capable of processing an online storage service and a non-transitory computer readable storage medium storing a control program for processing an online storage service.
2. Description of the Related Art
Conventionally, in order to store various types of files, a local storage such as a storage device provided in a terminal apparatus of a user (hereafter referred to as “user terminal”), a storage device connected to the user terminal and the like is used.
In the recent years, an online service (web service) that can store files in an online storage provided on the Internet is being offered accompanying a development of communication technology. In such a service, the user terminal performs uploads and downloads of files to and from the online storage.
Further, to improve convenience of the online storage, a file managing apparatus that offers a use experience that does not give a sense of presence of the online storage despite the fact of actually using the online storage is being proposed (see Japanese Patent Application Laid-Open No. 2010-287104).
The file managing apparatus described in Japanese Patent Application Laid-Open No. 2010-287104 includes an application for automatically uploading to an online storage files that were stored or updated to the apparatus itself. A virtual file is displayed to the user for feigning as if the files in the online storage are within the apparatus itself.
In some cases, a utilization restriction is set to the online storage by a service provider so as to avoid abuse and excessive monopolization of the service by certain users.
Accordingly, in a configuration such as the file managing apparatus described in Japanese Patent Application Laid-Open No. 2010-287104 treating the online storage similar to a local storage, when an access to the online storage becomes unavailable due to the aforesaid utilization restriction, there had been a problem that storing and reading files become unavailable.
Thus, the present disclosure is directed to a file managing apparatus capable of appropriately performing storing and reading the files even in the case where the utilization restriction is set to the online storage by the service provider.
The present disclosure is directed to a file managing apparatus that controls uploading a target file to an online storage by dividing the target file into a plurality of divided files when a file size of the target file to be uploaded to the online storage exceeds a maximum size per one file permitted in the online storage; manages identification information related to the plurality of divided files by associating the identification information with the target file; and restores the target file by combining the plurality of divided files after having downloaded the plurality of divided files from the online storage based on the managed identification information.
The present disclosure will be explained with reference to the drawings. The present disclosure adapts an NAS (Network Attached Storage), for example, as the file managing apparatus. In the drawings of the disclosure hereafter, identical or similar reference signs are given to identical or similar components.
(System Configuration)
First, an overall configuration of the communication system will be explained.
As shown in
The PC 100 and the NAS 200 are connected to a LAN (Local Area Network) 10 such as an in-house network and are capable of communicating with one another through the LAN 10. The LAN 10 is connected to the Internet 20 through a router and the like. The online storage 300 is connected to the Internet 20.
The PC 100 is an information processing apparatus that is operated by a user, and is furnished with a network communicating function for performing network communication and a user I/F (display, keyboard, mouse and the like). The PC 100 stores and reads files to and from the NAS 200 through the LAN 10.
The NAS 200 is a file server specialized in file storage and management, and is furnished with a file system for performing the file management and the network communicating function for performing the network communication. The NAS 200 may be shared by a plurality of user terminals.
The online storage 300 provides a web service capable of storing files, and is configured of one or more file servers. For example, the online storage 300 provides a storage area which the user can utilize by the user of the PC 100 registering to the web server. In the present disclosure, it is assumed that the user of the PC 100 has already registered to the service provided by the online storage 300.
Further, a utilization restriction is set to the online storage 300 by a service provider. In the present embodiment, the utilization restriction means that a permissible maximum size is set for a file size of one file. The permissible maximum size is a maximum size of the file size per one file of which the online storage 300 allows storage of, and is for example up to 1 GB per one file or up to 2 GB per one file.
Further, as another utilization restriction, there may be a case in which an upper limit value is set for a number of access per unit time. The upper limit value of the number of access per unit time is for example an upper limit value of 300 times per one hour. Note that, the number of access to the online storage 300 corresponds to a number of the NAS 200 calling an API (Application Program Interface) provided in the online storage 300.
(Configuration of NAS)
Next, a hardware configuration of the NAS 200 will be explained.
As shown in
The CPU 210 controls the respective functions of the NAS 200 by executing a control program (firmware) stored in the memory 220.
The memory 220 includes flash memory and RAM (Random Access Memory). The flash memory stores the control program to be executed by the CPU 210. The RAM temporarily stores the control program read from the flash memory and is used as a work area of the CPU 210.
The memory 220 may include a cache area for caching files to be uploaded to the online storage 300 and files downloaded from the online storage 300. Further, the memory 220 stores contents of the utilization restriction (which is in the present embodiment the permissible maximum size per one file and the upper limit value of the number of access per unit time) for the online storage 300.
The HDI) 230 stores the respective files. The HDD 230 may be configured as a disk array, and may configure RAID (Redundant Arrays of Inexpensive Disks).
The LAN I/F 240 is connected to the LAN 10, and is configured to communicate through the LAN 10. The LAN I/F 240 may be wiredly connected to the LAN 10, and may be wirelessly connected to the LAN 10. In the present embodiment, the LAN I/F 240 corresponds to a receiving section that receives a file storing request, a storage target file, a file updating request, a file reading request and the like from the PC 100.
Next, a software configuration of the NAS 200 will be explained.
As shown in
The file managing section 211 corresponds to a file system. In the present disclosure, the file managing section 211 performs file management by the directory configuration in which a virtual local directory indicating the online storage 300 is arranged as a lower directory of a directory indicating the NAS 200. By accessing the NAS 200, the PC 100 can browse through the directory configuration and perform file operation to the aforementioned directory configuration. A specific example of the aforementioned directory configuration will be explained later.
Thus, an entity of the file to be managed by the virtual local directory exists in the online storage 300. Due to this, when the file storing request is made to the virtual local directory, as will be explained later, a storage target file needs to be uploaded to the online storage 300. Below, a configuration of uploading the storage target file to the online storage 300 in response to the file storing request to the virtual local directory will be explained.
The cache managing section 212 caches the storage target file in the cache area provided in the memory 220. Further, the cache managing section 212 updates the cached storage target file in response to the file updating request from the PC 100.
The upload processing section 213 and the download processing section 214 correspond to an API provided in relation to the online storage 300. Note that, it is assumed that information necessary for the upload processing section 213 and the download processing section 214 to access the online storage 300 (for example, address information and authentication information) is preliminarily stored in the memory 220.
The upload processing section 213 uploads the storage target file cached by the cache managing section 212 to the online storage 300. Note that, it is assumed that information necessary for the upload processing section 213 to upload to the online storage 300 (for example, address information and authentication information) is preliminarily stored in the memory 220.
Upon the upload of the storage target file, the upload processing section 213 checks whether a file size of the storage target file exceeds the permissible maximum size of the online storage 300. Then, if the file size of the storage target file exceeds the permissible maximum size of the online storage 300, the upload processing section 213 uploads to the online storage 300 the storage target file by dividing it into a plurality of divided files.
Further, the upload processing section 213 includes the dividing number determining section 213a that determines the dividing number of the storage target file based on the file size of the storage target file and the permissible maximum size of the online storage 300. The dividing number determining section 213a determines the dividing number of the storage target file such that a file size of each of the plurality of divided files becomes at or less than the maximum size. For example, if the permissible maximum size of the online storage 300 is 1 GB and the file size of the storage target file is 3 GB, it would suffice to divide the storage target file into three or more.
Further, if the upper limit value is set for the number of access to the online storage 300 per unit time, the dividing number determining section 213a monitors the number of access to the online storage 300 per unit time (that is, the number of calling the API) by the upload processing section 213 and the download processing section 214. Then, the dividing number determining section 213a determines the dividing number of the storage target file such that the file size of each of the plurality of divided files is at or less than the permissible maximum size of the online storage 300 and that the number of access to the online storage 300 per unit time does not exceed the upper limit value. For example, as the number of access to the online storage 300 per unit time by the upload processing section 213 and the download processing section 214 increases closer to the upper limit value, the number of access is suppressed by making the dividing number of the storage target file smaller.
In uploading the storage target file by dividing the same, the file managing section 211 gives IDs (file names) to the plurality of divided files obtained by dividing the storage target file, and manages the IDs in association with the storage target file. Note that, when the PC 100 browses through the directory configuration of the NAS 200, the file managing section 211 displays an ID (file name) of the storage target file associated with the IDs of the respective divided files without displaying the IDs of the respective divided files.
According to this, display control can be made such that the user not to be aware of the fact that the actual file is divided.
In a case where the LAN I/F 240 receives a read request from the PC 100, where the aforementioned read request targets the virtual local directory, the download processing section 214 checks whether a read target file according to the read request is stored while being divided or not based on information managed by the file managing section 211. Then, if the read target file is stored in the divided manner, the download processing section 214 downloads the plurality of divided files corresponding to the read target file from the online storage 300 based on the information managed by the file managing section 211, thereafter restores the read target file by combining the aforementioned divided files, and transfers the aforementioned restored read target file to the PC 100.
Next, a specific example of the directory configuration managed by the file managing section 211 will be explained.
As shown in
An entity of each file (contents C21-1 to C21-3) included in the sub directory C21 is stored in the NAS 200. Contrary to this, an entity of each file (contents C221-1 to C221-3) included in (the sub directory C221 of) the sub directory C22 is stored in the online storage 300.
Accordingly, although the directories under the sub directory C22 are dealt as if the files exist in the NAS 200, the entities of the aforementioned files exist in the online storage 300, and thus are configured as virtual local directories.
Note that, such virtual local directory can be configured for example by using a FUSE (Filesystem in Userspace) that is one of software capable of constituting a file system.
(Operation of NAS)
Next, an operation upon dividing the storage target file and uploading the same will be explained.
As shown in
In step S12, the NAS 200 sends to the PC 100 a positive response to the file storing request. The PC 100 receives the aforementioned positive response.
In step S13, the PC 100 transfers to the NAS 200 the storage target file corresponding to the file storing request. The NAS 200 receives and caches the aforementioned storage target file.
Note that, the NAS 200 specifies the file size of the storage target file from information received in step S11 or S13.
In step S 14, the NAS 200 checks whether the file size of the storage target file exceeds the permissible maximum size of the online storage 300. Here, it is assumed that the file size of the storage target file exceeds the permissible maximum size of the online storage 300, and it is determined that the division of the storage target file is necessary.
In step S15, the NAS 200 determines the dividing number of the storage target file such that the file size of each of the plurality of divided files is at or less than the maximum size based on the file size of the storage target file and the permissible maximum size of the online storage 300. Note that, in the case where the upper limit value is set for the number of access to the online storage 300 per unit time, the NAS 200 determines the dividing number of the storage target file such that the file size of each of the plurality of divided files is at or less than the permissible maximum size of the online storage 300 and that the number of access to the online storage 300 per unit time does not exceed the upper limit value.
In step S16, the NAS 200 divides the cached storage target file in accordance with the dividing number determined in step S15. At this occasion, the NAS 200 gives the IDs (file names) to the plurality of divided files obtained by dividing the storage target file. For example, IDs such as a divided file #1, a divided file #2, and so on are given.
In step S17, the NAS 200 uploads the respective ones of the plurality of divided files obtained in step S16 to the online storage 300.
In step S18, the NAS 200 manages the IDs of the respective files in association with the storage target file. For example, a table in which a group composed of the IDs of the respective divided files is associated with the ID (file name) of the storage target file is created and stored in the memory 220.
Note that, when the PC 100 browses through the directory configuration of the NAS 200, the NAS 200 displays the ID (file name) of the storage target file associated with the IDs of the respective divided files without displaying the IDs of the respective divided files.
Next, an operation upon downloading the file that had been uploaded while being divided will be explained.
As shown in
In step S22, the NAS 200 checks whether the read target file is a file uploaded while being divided or not based on the file reading request received from the PC 100. For example, if the group of the IDs of the divided files is associated with the ID of the read target file included in the aforementioned file reading request, it is determined that the aforementioned read target file is a file that has been uploaded while being divided. Here, it is assumed that a determination has been made that the aforementioned read target file is a file that had been uploaded while being divided.
In step S23, the NAS 200 obtains the IDs of the respective divided files associated with the ID of the read target file included in the aforementioned file reading request based on the table stored in the memory 220.
In step S24, the NAS 200 sends to the online storage 300 a file obtaining request for each of the IDs of the divided files obtained in step S23. The online storage 300 receives the file obtaining request for each of the IDs of the divided files.
In step S25, the online storage 300 transfers to the NAS 200 each of the divided file indicated by the IDs of the divided files based on the file obtaining request for each of the IDs of the divided files received in step S24. The NAS 200 receives the respective divided files from the online storage 300.
In step S26, when it has been confirmed that all of the divided files associated with the ID of the read target file have been received, the NAS 200 restores the read target file by combining these divided files in order based on the IDs.
In step S27, the NAS 200 transfers the read target file restored in step S26 to the PC 100. The PC 100 receives the read target file from the NAS 200.
(Effects)
As explained above, the NAS 200 of the present disclosure can upload the target file to the online storage 300 even when the file size of the target file to be uploaded to the online storage 300 exceeds the maximum size allowed for one file in the online storage 300 (utilization restriction). Further, by managing the identification information of the plurality of divided files in association with the target file, the target file can be restored based on the aforementioned managed identification information.
Further, in the present disclosure, since the dividing number of the storage target file is determined such that the respective file sizes of the plurality of divided files become at or less than the maximum size, the target file can more surely be uploaded to the online storage 300.
Further, in the present disclosure, since the dividing number is determined so that the number of access to the online storage 300 per unit time does not exceed the upper limit value, the aforementioned target file can more surely be uploaded to the online storage 300 even in if the upper limit value (utilization restriction) is set to the number of access to the online storage 300 per unit time.
In the present disclosure, the online storage 300 can be treated similar to a local storage by changing the directory configuration, and storing and reading the file can appropriately be performed even if the utilization restriction is set for the online storage 300 by the service provider.
(Modifications)
Further, it should be understood that statements and drawings do not restrict this disclosure. From this disclosure, various alternative embodiments, examples and application techniques will be obvious to those skilled in the art.
For example, although the NAS 200 is used as the file managing apparatus, the PC 100 may be used as the file managing apparatus instead of the NAS 200. In this case, the PC 100 includes similar configurations as the hardware configuration shown in
Accordingly, it should be understood that the present disclosure covers various embodiments and the like that are not described herein.
Number | Date | Country | Kind |
---|---|---|---|
2011-112923 | May 2011 | JP | national |