以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の情報処理装置の一実施形態である多機能周辺装置(MFP)10の構成を示すブロック図である。詳細は後述するが、本実施形態のMFP10は、同一のファイルに基づく画像や文書を、ネットワーク800上に設けられた複数のウェブサービス(以下、単に「サービス」と称す)500にアップロードする場合における利便性が向上されている。
MFP10には、CPU11、フラッシュメモリ12、RAM13、LCD16、タッチパネル17、スキャナ18、プリンタ19、NCU20、モデム21、メモリカードインターフェイス(メモリカードI/F)22と、USBインターフェイス(USB_I/F)23、ネットワークインターフェイス(ネットワークI/F)24と、リアルタイムクロック(RTC)25とが主に設けられている。CPU11、フラッシュメモリ12、RAM13は、バスライン26を介して互いに接続されている。また、CPU11、フラッシュメモリ12、およびRAM13が接続されたバスライン26と、各部16〜25とは、入出力ポート27を介して互いに接続されている。
CPU11は、フラッシュメモリ12に記憶される固定値やプログラム、RAM13に記憶されているデータ、或いは、NCU20を介して送受信される各種信号に従って、MFP10が有している各機能の制御や、入出力ポート27と接続された各部を制御する。
フラッシュメモリ12は、不揮発性のメモリである。フラッシュメモリ12aには、MFP10の動作を制御する制御プログラム12aが格納される。後述する図3〜図5のフローチャートに示す各処理は、制御プログラム12aに従ってCPU11により実行される。フラッシュメモリ12には、MFP10が利用可能なサービス500に関する情報が記憶されたサービス情報テーブル12bが格納される。なお、サービス情報テーブル12bの詳細については、図2を参照して後述する。
また、フラッシュメモリ12には、サービス情報テーブル12bに記憶されている各サービス500について、各サービス500のサービス事業者から提供されているAPIを利用するサービス利用プログラム(図示せず)が格納されている。MFP10は、かかるサービス利用プログラムを利用することによって、各サービス500に対し、画像ファイルのアップロードまたはダウンロードを実行できる。また、フラッシュメモリ12には、各サービス500について、そのサービス500を利用するための利用IDなどのアカウント情報が格納される。
RAM13は、CPU11が制御プログラム12aを実行するにあたり、各種のデータを一時的に記憶するためのテンポラリエリアを有する書換可能な揮発性のメモリである。RAM13のテンポラリエリアには、アップロードリスト13aが記憶される。アップロードリスト13aは、CPU11が後述するアップロード処理を実行する場合に、ユーザがアップロード対象として選択した画像ファイルのリストである。また、RAM13には、サービス500へ画像ファイルをアップロードする場合のモードが格納される。MFP10には、当該モードとして、画質を優先する画質優先モードと、アップロード速度を優先する速度優先モードとが設けられており、ユーザは、画質優先モードまたは速度優先モードのいずれかのモードを、タッチパネル17などを操作することによって設定できる。
LCD16は液晶表示装置である。LCD16の画面には、タッチパネル17がLCD16に重ねて設けられる。タッチパネル17は、例えば、指や棒などの指示物がLCD16の画面に対してタッチ又は近づいた場合に、タッチ又は近づいた位置を検知し、検知した位置をMFP10に入力する。スキャナ18は、原稿を読み取ってスキャンデータに変換する。プリンタ19は、画像データに基づく画像を記録用紙に印刷する。モデム21は、FAX送信時には送信すべき画像データを、電話回線網(図示せず)に伝送可能な信号に変調してNCU20を介して送信し、または、電話回線網からNCU20を介して入力された信号を画像データに復調する。NCU20は、図示されない電話回線網とMFP10との間を接続するものであり、モデム21からの指示に従って、回線を閉結または切断することにより、電話回線網との間の接続状態を制御する。RTC25は、日付および時刻を計時するための回路である。
メモリカードI/F22は、不揮発性のメモリカードMCが装着されるインターフェイスであり、メモリカードMCに対するデータの書き込み又は読み出しを制御する。USB_I/F23は、USBケーブルを介して、例えば、パーソナルコンピュータやハードディスクなどの他の装置や、USBメモリなどの記憶媒体を通信可能に接続するための装置であり、周知の装置で構成される。ネットワークI/F22は、MFP10をインターネット800やLAN回線(図示せず)に接続するためのインターフェイスである。ネットワークI/F22を介してインターネットに接続されたMFP10は、各種のサービス500に通信可能に接続することができる。
サービス500は、サービス事業者が提供するウェブサービスであり、例えば、Picasa(登録商標)、Facebook(登録商標)、Flickr(登録商標)、Evernote(登録商標)などである。具体的に、サービス500は、周知のウェブサーバから構成される。サービス500は、インターネット800に接続されたMFP10などの端末とHTTPまたはHTTPSによる通信を行い、当該端末に対し、ファイル格納サービスなどの所定のサービスを提供する。図1に示す例では、サービス500として、6つのウェブサービス、すなわち、サービスA500aと、サービスB500bと、サービスC500cと、サービスD500dと、サービスE500eと、サービスF500fとを例示したが、サービス500の数としては、適宜の数を採用できる。
図2は、上述したサービス情報テーブル12bの内容を模式的に示す図である。図2に示すように、サービス情報テーブル12bには、記憶領域12b1〜12b5が設けられ、1のサービス500毎に、各記憶領域12b1〜12b5に設定値が格納される。記憶領域12b1には、1のサービス500を特定するサービス番号が格納される。図2に示す例では、6つのサービス500のそれぞれに対し、1〜6のサービス番号が割り当てられている。記憶領域12b2には、各サービス番号に対応するサービス500のサービス名が格納される。図2に示す例では、サービス番号1〜6に対し、それぞれ、サービスA〜Fがサービス名として格納されている。なお、サービスA〜Fというサービス名のサービス500は、それぞれ、サービスA500a、サービスB500b、サービスC500c、サービスD500d、サービスE500e、およびサービスF500fに対応する。
記憶領域12b3には、各サービス番号に対応するサービス500に対し、ファイルサイズを指定してファイルの記憶ができるか否かを示す情報、例えば、フラグの値が格納される。図2に示す例では、ファイルサイズを指定してファイルの記憶ができることを示す情報が記憶領域12b3に記憶されている場合には「可」を表記し、そうでない場合には「不可」と表記している。よって、図2に示す例によれば、サービス番号1,3,4により特定されるサービス500、すなわち、サービスA500a、サービスC500c、およびサービスD500dに対しては、ファイルサイズを指定してファイルを記憶できる。ファイルサイズを指定してファイルを記憶できるサービス500(500a,500c,500d)は、アップロードした画像ファイルを指定されたファイルサイズに縮小できるサービスである。一方、それ以外のサービス番号により特定されるサービス500、すなわち、サービスB500b、サービスE500e、およびサービスF500fに対しては、ファイルサイズを指定してファイルを記憶することができない。
記憶領域12b4には、各サービス番号に対応するサービス500に格納可能なファイルサイズのうち、最小のファイルサイズが格納される。記憶領域12b4には、ファイルサイズを指定してファイルの記憶ができることを示す情報が記憶領域12b3に記憶されている場合に、設定値が格納される。よって、図2に示す例では、サービス番号1,3,4により特定されるサービス500に対しては、記憶領域12b4に設定値が格納されているが、サービス番号2,5,6により特定されるサービス500に対しては、記憶領域12b4に設定値が格納されていない。記憶領域12b5には、各サービス番号に対応するサービス500について、アップロード(送信)可能な最大のファイルサイズが格納される。
上述したサービス情報テーブル12bは、MFP1の製造メーカにより作成されたものがデフォルトとしてフラッシュメモリ12に格納される。格納されるサービス500の増減や、各サービス500に対応する記憶領域12b1〜12b5の設定値は、メーカが必要に応じて提供する更新情報に基づいて随時更新される。
図3及び図4は、制御プログラム12aに従い、CPU11が実行するアップロード処理を示すフローチャートである。本処理は、メモリカードMCがメモリカードI/F22に装着された状態で、ユーザがタッチパネル17などから入力した画像アップロードの実行指示を、CPU11が受け付けた場合に開始される。まず、CPU11は、ステップS301(以下、ステップを省略)において、CPU11は、メモリカードI/F22に装着されているメモリカードMCから画像データ(画像ファイル)を取得する。
次に、CPU11は、取得した画像データに基づく画像をLCD16に表示させる(S302)。ユーザは、LCD16に表示された画像の中から、アップロードを所望する1または複数の画像を選択する。ユーザが1または複数の画像を選択した状態で当該選択を確定させる確定指示を入力したことを、CPU11が受け付けた場合(S303:Yes)、処理をS304に移行する。一方、当該確定指示の入力を、CPU11が受け付けていない場合(S303:No)、CPU11は、処理をS303に戻し、ユーザが確定指示を入力することを待機する。
S304において、CPU11は、選択された1または複数の画像について、選択された各画像のファイル名をユニークなファイル名に変換し、ファイル名が変換された画像ファイルをアップロードリスト13aに設定する。ユニークなファイル名としては、例えば、画像ファイルの当初のファイル名の後ろに、RTC25から取得した日付を、アンダーバーを介して付加したファイル名や、画像ファイルの当初のファイル名の後ろに、通算の数値を付加したファイル名などが例示される。次に、CPU11は、サービス情報テーブル12bに記憶されている全てのサービス500のサービス名をLCD16に一覧表示させる(S305)。ユーザは、LCD16に表示されたサービス名を参照し、アップロード先として使用する1又は複数のサービス500を選択する。ユーザが1または複数のサービス500を選択した状態で当該選択を確定させる確定指示を入力したことを、CPU11が受け付けた場合(S306:Yes)、選択されたサービス500を示す情報をRAM13に記憶し、処理をS307に移行する。なお、選択されたサービス500のうち、アカウント情報がフラッシュメモリ12に格納されていないサービスが存在する場合、CPU11は、ユーザにアカウント情報を入力させた後、処理をS307に移行する。ユーザが入力したアカウント情報は、該当するサービス500に対応づけてフラッシュメモリ12に記憶される。一方、S306において、当該確定指示の入力を、CPU11が受け付けていない場合(S306:No)、CPU11は、処理をS307に戻し、ユーザが確定指示を入力することを待機する。
S307において、CPU11は、RAM13を参照し、設定されているモードが、画質優先モードであるか、速度優先モードであるかを判断する。設定されているモードが画質優先モードであるとCPU11が判断した場合(S307:画質優先モード)、CPU11は、サービス情報テーブル12bを参照し、ユーザが選択したサービス500のうち、アップロード可能なファイルサイズが最も大きいサービス500を、第1使用サービスに設定する(S308)。つまり、CPU11は、記憶領域12b5に格納されている設定値が最大であるサービス500を、第1使用サービスに設定する。なお、S308において、ユーザが選択したサービス500の中に、アップロード可能なファイルサイズが最も大きいサービス500が複数存在する場合、CPU11は、所定のルールに従い決定される1のサービス500、例えば、記憶領域12b1に格納されるサービス番号が最も小さいサービス500を、第1使用サービスに設定する。一例として、図2に示すサービス情報テーブル12bに記憶されている全てのサービス500(500a〜500f)が選択された場合、S308では、サービス500a〜500fのうち、記憶領域12b5に格納されている設定値が最大であるサービスC500cが第1サービスに設定される。
次に、CPU11は、アップロードリスト13aに設定されている全ての画像ファイルを、第1使用サービスにアップロードする(S309)。具体的に、S309において、CPU11は、第1使用サービスに対応するサービス利用プログラムに従い、フラッシュメモリ12に記憶されているアカウント情報を含むアップロード先URL要求を、第1使用サービスに送信し、当該要求に基づいて第1使用サービスから返信されたアップロード先URLと、アップロードリスト13aに設定されている全ての画像ファイルのバイナリデータとを含むアップロードメッセージを第1使用サービスに送信する。
なお、第1使用サービスが、ファイルサイズを指定してファイルの記憶ができるサービス500である場合、S309において、CPU11は、第1使用サービスにアップロード可能な最大のファイルサイズを指定する情報をアップロードメッセージに組み込む。これにより、アップロードリスト13aに設定されている全ての画像ファイルは、第1使用サービスにアップロード可能な最大のサイズで当該サービスに記憶される。なお、アップロードリスト13aに設定されている全ての画像ファイルのうち、第1使用サービスにアップロード可能な最大サイズより大きな画像ファイルがあれば、CPU11は、当該画像ファイルを第1使用サービスにアップロード可能な最大サイズまたはそれ以下のサイズに縮小してから、アップロードメッセージに組み込む。よって、画像ファイルのファイルサイズが大き過ぎることが原因で、画像ファイルが所望のサービス500にアップロードできなくなることを防止できる。
一方、S307において、設定されているモードが速度優先モードであるとCPU11が判断した場合(S307:速度優先モード)、CPU11は、サービス情報テーブル12bを参照し、ユーザが選択したサービス500のうち、格納可能なファイルサイズが最も小さいサービス500を、第1使用サービスに設定する(S311)。なお、格納可能なファイルサイズが最も小さいサービス500は、ファイルサイズを指定してファイルの記憶ができるサービス500のうち、記憶領域12b4に格納されている設定値、すなわち、格納可能な最小のファイルサイズが最も小さいファイルサイズのサービス500を、格納可能なファイルサイズが最も小さいサービス500とする。また、S311において、ユーザが選択したサービス500の中に、格納可能なファイルサイズが最も小さいサービス500が複数存在する場合、または、ユーザが選択したサービスに、ファイルサイズを指定してファイルを記憶できるサービスが含まれていない場合、CPU11は、S308の場合と同様に、所定のルールに従い決定される1のサービス500を第1使用サービスに設定する。一例として、図2に示すサービス情報テーブル12bに記憶されている全てのサービス500(500a〜500f)が選択された場合、S311では、サービス500a〜500fのうち、格納可能なファイルサイズが最も小さいサービスA500aが第1サービスに設定される。
次に、CPU11は、アップロードリスト13aに設定されている全ての画像ファイルを、第1使用サービスにアップロードする(S312)。S312において、CPU11は、S309の場合と同様に、画像ファイルのアップロードを行う。なお、第1使用サービスが、ファイルサイズを指定してファイルの記憶ができるサービス500である場合、S312において、CPU11は、最小のファイルサイズを指定する情報をアップロードメッセージに組み込む。これにより、アップロードリスト13aに設定されている全ての画像ファイルは、指定されたファイルサイズに縮小されて第1使用サービスに記憶される。よって、アップロード対象の画像ファイルのファイルサイズが、指定されたファイルサイズより大きい場合、当該画像ファイルは、第1使用サービスにおいて、指定されたファイルサイズに縮小される。なお、アップロードリスト13aに設定されている全ての画像ファイルのうち、第1使用サービスにアップロード可能な最大サイズより大きな画像ファイルがあれば、CPU11は、S309の場合と同様に、当該画像ファイルを第1使用サービスにアップロード可能な最大サイズまたはそれ以下のサイズに縮小する。
S309またはS312の処理によるアップロードが完了すると、CPU11は、メモリカードI/F22に装着されているメモリカードMCを脱抜可能(取り外し可能)である旨を報知させ(S310)、処理を図4のS401に移行する。S310における報知の態様としては、例えば、メモリカードI/F22におけるメモリカードMCの挿入口であるスロット(図示せず)の近傍に設けたLEDなどの発光部(図示せず)の点灯や、メモリカードMCを脱抜可能である旨のメッセージをLCD16に表示させることなどが例示される。
S401において、CPU11は、変数mを1に設定する。なお、変数mは、アップロードリスト13aに設定されている全ての画像ファイルのうち、m番目の画像ファイルを指定する変数である。次に、アップロードリスト13aに設定されている画像ファイルのうち、未処理の画像ファイルがある場合(S402:No)、CPU11は、第1使用サービスから、アップロードリスト13aにおけるm番目の画像ファイルをダウンロードする(S403)。具体的に、S403において、CPU11は、第1使用サービスに対応するサービス利用プログラムに従い、アップロードリスト13aにおけるm番目の画像ファイルのファイル名を指定する情報を含むダウンロード要求を、第1使用サービスに送信し、m番目の画像ファイルを受信する。なお、S402における未処理の画像ファイルとは、S403〜S412の処理が実行されていない画像ファイルである。
次に、CPU11は、変数xを1に設定する(S404)。なお、変数xは、選択された全てのサービスのうち、x番目のサービスを指定する変数である。次に、選択された全てのサービスへの、第1使用サービスからダウンロードしたm番目の画像ファイルのアップロードが未だ完了していないが、x番目のサービスが、第1使用サービスである場合(S405:No,S406:Yes)、第1使用サービスには、画像ファイルが既にアップロードされているので、CPU11は、変数xの値に1を加算し(S413)、処理をS405に戻し、次のアップロード先のサービス500に対する画像ファイルのアップロード処理を実行する。
一方、第1使用サービスからダウンロードしたm番目の画像ファイルのアップロードが未だ完了しておらず、かつ、x番目のサービスが、第1使用サービスでなければ(S405:No,S406:No)、CPU11は、m番目の画像ファイルのファイルサイズが、x番目のサービスにアップロード可能な最大のファイルサイズより大きいかを判断する(S407)。
S407において、m番目の画像ファイルのファイルサイズが、x番目のサービスにアップロード可能な最大のファイルサイズ以下であると、CPU11が判断した場合(S407)、CPU11は、m番目の画像ファイルを、x番目のサービスにアップロードする(S410)。具体的に、S410において、CPU11は、x番目サービスに対応するサービス利用プログラムに従い、S309の場合と同様に、画像ファイルのアップロードを行う。
一方、m番目の画像ファイルのファイルサイズが、x番目のサービスにアップロード可能な最大のファイルサイズより大きいと、CPU11が判断した場合(S407:Yes)、CPU11は、画像ファイルを、x番目のサービスにアップロード可能な最大サイズに縮小し(S409)、処理をS410に移行し、縮小した画像ファイルをx番目のサービスにアップロードする。これにより、画像ファイルのファイルサイズが大き過ぎることが原因で、画像ファイルが所望のサービス500にアップロードできなくなることを防止できる。
CPU11は、S410の処理後、画像ファイルのアップロードが成功したかを判断する(S411)。各サービス500は、MFP10からアップロードメッセージを受信した場合、アップロード結果を含むレスポンスメッセージをMFP10に返信する。よって、S411において、CPU11は、x番目サービスに対応するサービス利用プログラムに従い、受信したレスポンスメッセージを解析し、アップロード結果から、アップロードが成功したか否かを判断する。S411において、CPU11が、画像ファイルのアップロードが成功したと判断した場合(S411:Yes)、処理をS413に移行する。
一方、411において、CPU11が、画像ファイルのアップロードが失敗したと判断した場合(S411:No)、CPU11は、10バイト以下の画像ファイルを、処理中の画像ファイル、すなわち、m番目の画像ファイルと同ファイル名でアップロードし(S412)、処理をS413に移行する。
S405において、選択された全てのサービスへの、m番目の画像ファイルのアップロードが完了した場合(S405:Yes)、CPU11は、変数mに1を加算し(S414)、処理をS402に戻す。S402において、アップロードリスト13aに設定されている画像ファイルが全て処理された場合(S402:Yes)、CPU11は、本処理を終了する。
図5は、制御プログラム12aに従い、CPU11が実行する同期チェック処理を示すフローチャートである。本処理は、例えば30分毎などの定期的に開始される処理である。まず、CPU11は、サービス情報テーブル12bに記憶されている全てのサービス500に対し、ファイルサイズが10バイト以下の画像ファイルの検索を実行する(S501)。S501において、CPU111は、フラッシュメモリ12に記憶されているアカウント情報を用いて、各サービス500にログインした後、検索を実行する。
S501で行った検索の結果、該当する画像ファイル、すなわち、ファイルサイズが10バイト以下の画像ファイルがある場合(S502:Yes)、CPU11は、サービス情報テーブル12bに記憶されている全てのサービス500に対し、検索された画像ファイルと同ファイル名であり、かつ、ファイルサイズが10バイトより大きい画像ファイルの検索を実行し(S503)、処理をS504に移行する。一方、S502において、該当する画像ファイルがない場合(S502:No)、CPU11は、S503の処理をスキップして、処理をS504に移行する。
S503で行った検索の結果、該当するファイル、すなわち、S501において検索された画像ファイルと同ファイル名であり、かつ、ファイルサイズが10バイトより大きい画像ファイルがある場合(S504:Yes)、CPU11は、該当する画像ファイルを、当該画像ファイルが格納されているサービス500からダウンロードし(S505)、処理をS506に移行する。S505において、CPU11は、該当する画像ファイルが格納されているサービスに対応するサービス利用プログラムに従い、S403と同様に、画像ファイルのダウンロードを行う。一方、S504において、該当する画像ファイルがない場合(S504:No)、CPU11は、本処理を終了する。
次に、CPU11は、S505においてダウンロードした画像ファイルを、S501において検索された画像ファイルが格納されたサービス500にアップロードする(S506)。S506において、CPU11は、S501において検索された画像ファイルが格納されているサービスに対応するサービス利用プログラムに従い、S309の場合と同様に、画像ファイルのアップロードを行う。このとき、S501において検索された画像ファイル、すなわち、ファイルサイズが10バイト以下の画像ファイルは、S505においてダウンロードした画像ファイルにより上書きされる。CPU11は、S507の処理後、本処理を終了する。
以上説明した通り、本実施形態のMFP10によれば、ユーザが選択した画像ファイルを、ユーザが選択した複数のサービス500にアップロードする場合に、モードに応じて決定された1のサービス500を第1使用サービスとして決定し、まず、全画像ファイルが当該第1使用サービスにアップロードされる。その後、第1使用サービスから、先にアップロードした画像ファイルがダウンロードされて、ダウンロードされた画像ファイルが、ユーザが選択した複数のサービスのうち、第1使用サービス以外のサービスにアップロードされる。よって、同一のファイルに基づく画像を、複数のサービスに対してアップロードする場合であっても、容易にアップロードを行うことができる。
また、第1使用サービスに画像ファイルがアップロードされた後は、アップロードされた画像ファイルを用いて、他のサービス500へのアップロードを行うことができるので、アップロード元の画像ファイルを記憶するメモリカードMCは、画像ファイルが第1使用サービスにアップロードされた後は、メモリカードI/F22から脱抜しても他のサービス500への画像ファイルのアップロードに影響しない。よって、ユーザは、自身が選択した全てのサービス500に対する画像ファイルのアップロードが完了することを待たずに、メモリカードMCをメモリカードI/F22から脱抜することができる。よって、メモリカードMCの管理を行い易く、例えば、メモリカードI/F22から取り出し忘れたことによるメモリカードMCの盗難や紛失を抑制できる。ここで、MFP10によれば、第1使用サービスへの画像ファイルのアップロードが完了した場合に、その旨が報知されるので、ユーザは、メモリカードMCを脱抜できるタイミングを最も早いタイミングで知ることができ、利便性が良い。
また、本実施形態のMFP10によれば、速度優先モードが選択された場合には、選択されたサービス500のうち、格納可能なファイルサイズが最小である1のサービス500が、第1使用サービスとして選択される。よって、第1使用サービスには画像ファイルを最も小さいサイズで記憶させることができる。よって、第1使用サービスからの画像ファイルのダウンロードや、選択された他のサービス500への画像ファイルのアップロードは、当該最小のファイルサイズで行うことができる。通信速度は、ファイルサイズが小さいほど速くなる傾向があるので、複数のサービス500への、同一のファイルに基づく画像のアップロードに要する通信時間を短縮できる。一方、本実施形態のMFP10によれば、画質優先モードが選択された場合には、選択されたサービス500のうち、アップロード可能なファイルサイズが最大である1のサービス500が、第1使用サービスとして選択される。よって、元の画像ファイルのサイズにできるだけ近いファイルサイズで当該画像ファイルを第1使用サービスにアップロードすることができ、ファイルサイズの縮小に伴う画質の劣化を抑制できる。
また、本実施形態のMFP10によれば、画像ファイルのアップロードに失敗した場合には、10バイト以下の小さなファイルサイズの画像ファイルが代わりにアップロードされる構成であるので、MFP10は、利用可能なサービス500を対象として、10バイト以下の画像ファイルの有無を検索することによって、アップロードに失敗した画像ファイルの存在を確認できる。また、MFP10は、10バイト以下の画像ファイルが検索された場合には、利用可能なサービス500から、当該ファイル名と同名であり、かつ、画像ファイルとして適切な大きさのファイルサイズを有する画像ファイルを検索し、該当ファイルを、10バイト以下の画像ファイルと置換させるように構成されているので、アップロードに失敗した当初の画像ファイルを自動的に再アップロードすることができる。ここで、画像ファイルのアップロードに失敗した場合には、小さなファイルサイズのファイルをアップロードさせるので、アップロードの失敗がサービス500の容量が原因である場合であっても、当初のアップロード対象の画像ファイルと同ファイル名の画像ファイルのアップロードが可能となる。
上記実施形態において、MFP10が、情報処理装置の一例である。制御プログラム12aが、情報処理プログラムの一例である。サービス500が、サーバの一例である。インターネット800がネットワークの一例である。S301の処理が、第1ファイル取得手段、第1ファイル取得ステップの一例である。S309,S312の処理が、第1ファイル送信手段、第1ファイル送信ステップの一例である。S403の処理が、第2ファイル取得手段、第2ファイル取得ステップの一例である。S410の処理が、第2ファイル送信手段、第2ファイル送信ステップの一例である。S304の処理が、記憶制御手段の一例である。S311の処理が、サイズ取得手段及び第1サーバ選択手段の一例である。S308の処理が、第2サーバ選択手段の一例である。S309,S407の処理が、サイズ判断手段の一例である。S309,S312,S409の処理が、縮小手段の一例である。S412の処理が、第3ファイル送信手段の一例である。S501の処理が、抽出手段の一例である。S503の処理が、格納判断手段の一例である。S505の処理が、第3ファイル取得手段の一例である。S506の処理が、第4ファイル送信手段の一例である。S310の処理が、報知手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、本発明の情報処理装置として、MFP10を例示したが、インターネット800上のサービス500と通信可能に接続できる装置であれば、例えば、スマートフォンやタブレット等の携帯端末や、パーソナルコンピュータや、デジタルカメラなどであっても、図4〜図6のフローチャートに示す各処理をCPUなどの制御装置に実行させるアプリケーションプログラムを搭載することによって、本発明の情報処理装置となり得る。
上記実施形態では、サービス500にアップロードするファイルとして、画像ファイルを例示して説明したが、これに限らず、各種の文書データ作成ソフトなどにより作成された文書ファイルなど、サービス500にアップロード可能な種類のファイルであれば、画像ファイル以外の種々のファイルをサービス500にアップロードする場合においても、本発明を適用できる。また、アップロード対象として選択されるファイルは、上記実施形態のように全て画像ファイルであることに限らず、画像ファイルと画像ファイル以外のファイルとが混在する形態であってもよい。
上記実施形態では、アップロード対象とする画像ファイルとして、メモリカードMCに記憶されている画像データ(画像ファイル)を例示したが、これに限らず、スキャナ18が読み取った原稿のスキャンデータなどであってもよい。アップロード対象をスキャンデータとする場合、アップロード処理(図3,図4)のS301において、CPU11は、スキャナ18に原稿を読み取らせることによって、画像データを取得する構成とすればよい。かかる場合、S310において報知する内容を「原稿を取り出して下さい」等にすればよい。あるいは、スキャンデータをアップロードする場合には、S310の処理を省略してもよい。なお、MFP10のような比較的RAMの容量が小さい装置の場合、スキャンデータをアップロード対象としたときにはRAMが容量不足になる可能性があるので、S301において取得する画像データの数は1であることが好ましく、かかる場合には、アップロードを所望する画像データの数だけ、S301〜S309,S311,S312の処理を繰り返した後、S310以降を実行する構成とすればよい。
また、アップロード対象とする画像ファイルが記憶される記憶媒体は、メモリカードMCに限らず、USB_I/F22に接続されるUSBメモリや、ハードディスクなどに記憶されている画像データであってもよい。
上記実施形態では、MFP10は、画像ファイルのアップロードが失敗した場合、10バイト以下の画像ファイルをアップロードし、同期チェック処理(図5)を実行する構成とした。これに換えて、MFP10は、画像ファイルのアップロードが失敗した場合、アップロードに失敗した画像ファイルのファイル名と、失敗したアップロード先のサービス500のサービス名を失敗情報としてRAM13に記憶しておき、所定のタイミングで、サービス情報テーブル12bに記憶されている全てのサービス500に対し、記憶されている失敗情報に基づき、アップロードに失敗した画像ファイルと同ファイル名の画像ファイルを検索する構成としてもよい。そして、該当する画像ファイルがあった場合、MFP10は、当該画像ファイルをダウンロードし、ダウンロードした画像ファイルを、アップロードに失敗したサービス500にアップロードすればよい。このとき、MFP10は、画像ファイルのアップロードが失敗した場合、アップロードに失敗したサービス500以外に選択されているサービス500を示す情報を取得し、失敗情報に含める構成としてもよい。かかる場合、アップロードに失敗した画像ファイルと同ファイル名の画像ファイルを検索する対象とするサービス500の数を限定することができる。しかし、記憶させた失敗情報は、MFP10の電源が落とされた場合に消失する虞があるので、上記実施形態のように、10バイト以下の画像ファイルをアップロードすることが好ましい。
上記実施形態では、各サービス500について、アップロード可能なファイルサイズが記憶されたサービス情報テーブル12bが、MFP10に予め設けられており、MFP10は、当該サービス情報テーブル12bを参照して、選択された各サービス500にアップロード可能なファイルサイズを取得する構成としたが、各サービス500にアップロード可能なファイルサイズをユーザに指定させて入力させる構成としてもよい。かかる場合も、サイズ取得手段の一例となり得る。
上記実施形態では、サービス500として、格納可能な最大のファイルサイズが設けられているサービスを考慮していないが、格納可能な最大のファイルサイズが設けられているサービスがある場合には、当該サービスに対し、アップロード可能な最大のファイルサイズに加え、格納可能な最大のファイルサイズを対応付けてサービス情報テーブル12bに記憶する構成としてもよい。格納可能な最大のファイルサイズが設けられているサービスに対し、アップロード可能な最大のファイルサイズより小さく、かつ、格納可能な最大のファイルサイズより大きいファイルサイズのファイルをアップロードする場合には、格納可能な最大のファイルサイズを指定してアップロードさせればよい。係る場合、当該サービスにおいて、アップロードされたファイルは、指定された最大のファイルサイズに縮小されて記憶される。
上記実施形態では、速度優先モードにおいて、画像ファイルが第1使用サービスに格納可能な最小サイズで記憶されるよう、アップロードメッセージに最小のファイルサイズを指定する情報を組み込んだり、MFP10において縮小した画像ファイルをアップロードしたりする構成としたが、最小のファイルサイズでは画質が劣化し過ぎる虞があるので、速度優先モードの場合には、各サービス500に格納可能な最小サイズとは無関係に、予め決定されたサイズで、画像ファイルを第1使用サービスに記憶させる構成としてもよい。第1使用サービスに縮小された画像ファイルを記憶させるので、画像ファイルを複数のサービス500にアップロードする場合に要する通信時間の抑制に有効である。
上記実施形態では、第1使用サービスへの画像ファイルのアップロード後、当該第1使用サービスから画像ファイルをダウンロードする構成としたが、アップロード対象とする画像ファイルの合計サイズがRAM13に記憶可能なサイズであるかを判断し、RAM13に記憶可能なサイズである場合には、アップロード対象とする画像ファイルをRAM13に記憶させておき、第1使用サービスから画像ファイルをダウンロードすることなく、他のサービス500にアップロードする構成としてもよい。かかる場合も、第1使用サービスへのアップロードが完了すると、メモリカードMCの脱抜が可能となる。
上記実施形態では、第1使用サービスへの画像ファイルのアップロード後、当該第1使用サービスから画像ファイルを1ファイルずつダウンロードし、1の画像ファイルをダウンロードする毎に、当該1の画像ファイルを、選択された他のサービス500にアップロードする構成としたが、第1使用サービスから全ての画像ファイルをダウンロードし、ダウンロードした画像ファイルを、選択された他のサービス500にアップロードする構成としてもよい。しかし、第1使用サービスから全ての画像ファイルをダウンロードした場合、RAM13の容量が不足する場合が生じ得るので、上記実施形態のように、1ファイルずつダウンロードすることが好ましい。
上記実施形態では、アップロードリスト13aに設定するファイル名をユニークなファイル名としたが、選択された画像のオリジナルなファイル名をアップロードリスト13aに設定する構成としてもよい。しかし、選択された画像のオリジナルなファイル名でアップロードした場合、アップロード先のサービス500に既に同名の画像ファイルが存在する場合に、不都合が生じ得る。また、S503での検索の結果、検索された画像ファイルが、所望する画像ファイル、すなわち、アップロードに失敗した画像ファイルでない場合が生じ得る。よって、アップロードリスト13aに設定するファイル名は、ユニークなファイル名にリネームすることが好ましい。
上記実施形態では、第1使用サービスにアップロードした画像ファイルをダウンロードする場合、アップロードリスト13aに記憶されたファイル名を指定することによって、対象とする画像ファイルをダウンロードする構成としたが、ユーザが対象とする画像ファイルのファイル名を指定する構成としてもよい。しかし、第1使用サービスから画像ファイルをダウンロードする場合、アップロードリスト13aに記憶されたファイル名を利用する方が、ユーザの手間が少なく好ましい。
上記実施形態に記載した数値は一例であり、適宜の値を採用できる。例えば、アップロードに失敗した場合には、10バイト以下の画像ファイルを再アップロードする構成としたが、この場合、再アップロードする画像ファイルのファイルサイズは、10バイト以下であることに限らず、数バイト〜10数バイト程度以下の小さいファイルサイズであればよい。
上記実施形態では、MFP10の製造メーカが準備したサービス情報テーブル12bに記憶されているサービス500の中から、アップロード先とするサービス500を選択できる構成としたが、ユーザに、アップロード先とするサービス500を入力させる構成としてもよい。
上記実施形態では、MFP10は、各サービス500のサービス事業者から提供されているAPIを利用するサービス利用プログラム(図示せず)を用いて、各サービス500に対する画像ファイルのアップロードまたはダウンロードを行う構成とした。これに換えて、各サービス500のサービス事業者から提供されているAPIを利用するサービス利用プログラムが搭載された中継装置、例えば、特開2012−95281号に記載される中継装置を用い、MFP10は、当該中継装置を介して、各サービス500に対する画像ファイルのアップロードまたはダウンロードを行う構成としてもよい。