本申請(qǐng)涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)操作方法、裝置、中轉(zhuǎn)設(shè)備及客戶端。
背景技術(shù):
隨著云計(jì)算的盛行,用戶的云主機(jī)和虛擬節(jié)點(diǎn)數(shù)量也不斷攀升。多主機(jī)管理尤其是多主機(jī)間文件管理的效率和便捷性亟待改善。現(xiàn)有多主機(jī)管理軟件中,將文件從主機(jī)a移動(dòng)到主機(jī)b一般通過(guò)以下方式:從a主機(jī)下載文件到用戶本地機(jī)器,將下載成功的文件從本地機(jī)器上傳到主機(jī)b。該操作方式在遠(yuǎn)程主機(jī)對(duì)外帶寬較小而遠(yuǎn)程主機(jī)相互間的帶寬較大時(shí),下載速度慢,耗時(shí)耗力。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┮环N新的技術(shù)方案,可以解決多主機(jī)間操作文件下載速度慢的技術(shù)問(wèn)題。
為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┘夹g(shù)方案如下:
根據(jù)本申請(qǐng)的第一方面,提出了一種數(shù)據(jù)操作方法,應(yīng)用在中轉(zhuǎn)設(shè)備,包括:
接收來(lái)自客戶端的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,所述請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、所述源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址;
當(dāng)所述第一地址與所述第二地址不相同時(shí),將所述源數(shù)據(jù)從所述源主機(jī) 轉(zhuǎn)送至所述目標(biāo)主機(jī)。
根據(jù)本申請(qǐng)的第二方面,提出了一種數(shù)據(jù)操作方法,應(yīng)用在客戶端,包括:
確定用戶在所述客戶端上操作的源數(shù)據(jù)、所述源數(shù)據(jù)所在的源主機(jī)的第一地址、目標(biāo)主機(jī)、所述目標(biāo)主機(jī)的第二地址以及操作所述源數(shù)據(jù)的操作類型;
生成用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,所述請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、所述第一地址以及所述第二地址;
向中轉(zhuǎn)設(shè)備發(fā)送所述請(qǐng)求消息。
根據(jù)本申請(qǐng)的第三方面,提出了一種數(shù)據(jù)操作裝置,包括:
接收模塊,用于接收來(lái)自瀏覽器的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,所述請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、所述源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址;
第一控制模塊,用于如果所述接收模塊接收到的所述第一地址與所述第二地址相同,控制所述源主機(jī)在所述源主機(jī)的磁盤上調(diào)用與所述操作類型相對(duì)應(yīng)的操作,將操作結(jié)果反饋給所述瀏覽器;
轉(zhuǎn)發(fā)模塊,用于如果所述接收模塊接收到的所述第一地址與所述第二地址不相同,將所述源數(shù)據(jù)從所述源主機(jī)轉(zhuǎn)送至所述目標(biāo)主機(jī)。
根據(jù)本申請(qǐng)的第三方面,提出了一種服務(wù)器,所述服務(wù)器包括:
處理器;用于存儲(chǔ)所述處理器可執(zhí)行指令的存儲(chǔ)器;網(wǎng)絡(luò)接口;
其中,所述網(wǎng)絡(luò)接口,用于接收來(lái)自瀏覽器的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,所述請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、所述源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址;
所述處理器,用于如果所述第一地址與所述第二地址相同,控制所述源主機(jī)在所述源主機(jī)的磁盤上調(diào)用與所述操作類型相對(duì)應(yīng)的操作,并通過(guò)所述網(wǎng)絡(luò)接口將操作結(jié)果反饋給所述瀏覽器;如果所述第一地址與所述第二地址不相同,將所述源數(shù)據(jù)從所述源主機(jī)轉(zhuǎn)送至所述目標(biāo)主機(jī)。
由以上技術(shù)方案可見(jiàn),本申請(qǐng)可以將主機(jī)內(nèi)和不同主機(jī)之間的操作融為一體,從而可以使用戶無(wú)感知地將源數(shù)據(jù)當(dāng)作統(tǒng)一的資源在同一主機(jī)或者不同主機(jī)之間任意轉(zhuǎn)存,由于操作簡(jiǎn)單、符合用戶的操作常識(shí),因此極大地提高了文件的傳輸效率和用戶體驗(yàn)。
附圖說(shuō)明
圖1a示出了根據(jù)本發(fā)明的示例性實(shí)施例一的數(shù)據(jù)操作方法的流程示意圖;
圖1b示出了圖1a中的瀏覽器的界面示意圖之一;
圖1c示出了圖1a中的瀏覽器的界面示意圖之二;
圖2a示出了根據(jù)本發(fā)明的示例性實(shí)施例二的數(shù)據(jù)操作方法的流程示意圖;
圖2b示出了圖2a中的瀏覽器的界面示意圖之一;
圖2c示出了圖2a中的瀏覽器的界面示意圖之二;
圖3a示出了根據(jù)本發(fā)明的示例性實(shí)施例三的數(shù)據(jù)操作方法的流程示意圖;
圖3b示出了圖3a中的瀏覽器的界面示意圖之一;
圖3c示出了圖3a中的瀏覽器的界面示意圖之二;
圖4示出了根據(jù)本發(fā)明的示例性實(shí)施例四的數(shù)據(jù)操作方法的流程示意圖;
圖5示出了根據(jù)本發(fā)明的示例性實(shí)施例五的數(shù)據(jù)操作方法的流程示意圖;
圖6示出了根據(jù)本發(fā)明的一示例性實(shí)施例的中轉(zhuǎn)設(shè)備的結(jié)構(gòu)示意圖;
圖7示出了根據(jù)本發(fā)明的一示例性實(shí)施例的客戶端的結(jié)構(gòu)示意圖;
圖8示出了根據(jù)本發(fā)明的示例性實(shí)施例一的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;
圖9示出了根據(jù)本發(fā)明的示例性實(shí)施例二的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意 圖;
圖10示出了根據(jù)本發(fā)明的示例性實(shí)施例三的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;
圖11示出了根據(jù)本發(fā)明的示例性實(shí)施例四的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;
圖12示出了根據(jù)本發(fā)明的示例性實(shí)施例五的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;
圖13示出了根據(jù)本發(fā)明的示例性實(shí)施例六的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。
在本申請(qǐng)使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請(qǐng)。在本申請(qǐng)和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本申請(qǐng)可能采用術(shù)語(yǔ)第一、第二、第三等來(lái)描述各種信息,但這些信息不應(yīng)限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅用來(lái)將同一類型的信息彼此區(qū)分開(kāi)。例如,在不脫離本申請(qǐng)范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
為對(duì)本申請(qǐng)進(jìn)行進(jìn)一步說(shuō)明,提供下列實(shí)施例:
圖1a示出了根據(jù)本發(fā)明的示例性實(shí)施例一的數(shù)據(jù)操作方法的流程示意圖,圖1b示出了圖1a中的瀏覽器的界面示意圖之一,圖1c示出了圖1a中的瀏覽器的界面示意圖之二;本實(shí)施例可以應(yīng)用在服務(wù)器或者第三方主機(jī)等中轉(zhuǎn)設(shè)備上,客戶端可以以瀏覽器或者應(yīng)用程序的方式實(shí)現(xiàn),本實(shí)施例以中轉(zhuǎn)設(shè)備為服務(wù)器并且客戶端為瀏覽器進(jìn)行實(shí)施例行說(shuō)明,如圖1a所示,包括如下步驟:
步驟101,接收來(lái)自客戶端的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址。
在一實(shí)施例中,客戶端可以為安裝在任一臺(tái)主機(jī)上的瀏覽器,并與服務(wù)器、源主機(jī)和目標(biāo)主機(jī)在同一網(wǎng)絡(luò)中。在一實(shí)施例中,用戶操作源主機(jī)的操作類型可以為拷貝、剪切等操作。在一實(shí)施例中,可以通過(guò)檢測(cè)用戶在瀏覽器上的操作得到源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址,如圖1b和圖1c所示,在瀏覽器的界面上,用戶(aichao.ac)登錄了主機(jī)a和主機(jī)b,通過(guò)瀏覽器可以使用戶操作主機(jī)a和主機(jī)b,例如,將主機(jī)a上的文件從磁盤內(nèi)的一個(gè)地址拷貝到另一個(gè)地址,或者,將主機(jī)a上的文件拷貝到主機(jī)b上,等等。
步驟102,確定第一地址與第二地址是否相同,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),執(zhí)行步驟103,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),執(zhí)行步驟104。
在一實(shí)施例中,中轉(zhuǎn)設(shè)備在接收到請(qǐng)求消息后,根據(jù)第一地址和第二地址是否相同來(lái)確定是在主機(jī)a內(nèi)對(duì)源文件進(jìn)行操作還是從主機(jī)a到主機(jī)b的跨主機(jī)操作。例如,將主機(jī)a作為源主機(jī),主機(jī)b作為目標(biāo)主機(jī),當(dāng)需要將主機(jī)a上的源數(shù)據(jù)進(jìn)行拷貝、剪切等操作時(shí),如果為同一主機(jī)上的操作,第一地址為圖1b中所示的192.168.43.134,第二地址仍為圖1b中所示的192.168.43.134;如果為不同主機(jī)之間的操作,第一地址為圖1b中所示的192.168.43.134,第二地址為圖1b中所示的192.168.43.131。在另一實(shí)施例中, 如果瀏覽器根據(jù)用戶在瀏覽器上的操作已經(jīng)判斷出第一地址與第二地址是否相同,可以將判斷結(jié)果攜帶在請(qǐng)求消息中,服務(wù)器可以從請(qǐng)求消息中解析出二者是否相同的判斷結(jié)果。
步驟103,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),控制源主機(jī)在其磁盤上調(diào)用與操作類型相對(duì)應(yīng)的操作,將操作結(jié)果反饋給客戶端。
在一實(shí)施例中,如果第一地址與第二地址相同,說(shuō)明用戶正在進(jìn)行源主機(jī)內(nèi)的操作,源主機(jī)自身的功能被調(diào)用,源數(shù)據(jù)在源主機(jī)的磁盤內(nèi)傳輸,例如,在主機(jī)a的磁盤上進(jìn)行磁盤內(nèi)將源數(shù)據(jù)粘貼到磁盤上的目標(biāo)地址(對(duì)應(yīng)“拷貝”的操作類型)、將源數(shù)據(jù)粘貼到磁盤上的目標(biāo)地址,并刪除源數(shù)據(jù)在磁盤上的原地址(對(duì)應(yīng)“剪切”的操作類型)。在一實(shí)施例中,操作結(jié)果可以為操作成功或者操作失敗,從而使瀏覽器將操作結(jié)果展示給用戶。
步驟104,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),將源數(shù)據(jù)從源主機(jī)轉(zhuǎn)送至目標(biāo)主機(jī)。
在一實(shí)施例中,如果第一地址與第二地址不相同,說(shuō)明用戶正在進(jìn)行跨主機(jī)的操作,服務(wù)器可以通過(guò)源主機(jī)的sftp服務(wù)獲取源主機(jī)上的源數(shù)據(jù),將源數(shù)據(jù)、源數(shù)據(jù)在目標(biāo)主機(jī)上的目標(biāo)路徑以管道的方式異步傳輸給目標(biāo)主機(jī)。
由上述描述可知,本發(fā)明實(shí)施例通過(guò)上述步驟101-步驟104將主機(jī)內(nèi)和不同主機(jī)之間的操作融為一體,從而可以使用戶無(wú)感知地將源數(shù)據(jù)當(dāng)作統(tǒng)一的資源在同一主機(jī)或者不同主機(jī)之間任意轉(zhuǎn)存,由于操作簡(jiǎn)單、符合用戶的操作常識(shí),因此極大地提高了文件的傳輸效率和用戶體驗(yàn)。
圖2a示出了根據(jù)本發(fā)明的示例性實(shí)施例二的數(shù)據(jù)操作方法的流程示意圖,圖2b示出了圖2a中的瀏覽器的界面示意圖之一,圖2c示出了圖2a中的瀏覽器的界面示意圖之二;本實(shí)施例以如何在不同主機(jī)之間進(jìn)行數(shù)據(jù)傳輸為例進(jìn)行示例性說(shuō)明,如圖2a所示,包括如下步驟:
步驟201,接收來(lái)自客戶端的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、源主機(jī)的第一地址以及目標(biāo)主機(jī)的第 二地址。
步驟202,確定第一地址與第二地址是否相同,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),執(zhí)行步驟203,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),執(zhí)行步驟204。
步驟203,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),控制源主機(jī)在其磁盤上調(diào)用與操作類型相對(duì)應(yīng)的操作,將操作結(jié)果反饋給客戶端。
上述步驟201-步驟203的描述可以參見(jiàn)上述圖1a所示實(shí)施例的相關(guān)描述,在此不再詳述。
步驟204,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),通過(guò)源主機(jī)的sftp服務(wù)獲取源主機(jī)上的源數(shù)據(jù)。
步驟205,確定源數(shù)據(jù)的類型是否為目錄,如果源數(shù)據(jù)的類型為目錄,執(zhí)行步驟206,如果源數(shù)據(jù)的類型為文件,將源數(shù)據(jù)對(duì)應(yīng)的文件作為管道輸入流,執(zhí)行步驟207。
步驟206,如果源數(shù)據(jù)的類型為目錄,將目錄內(nèi)的文件進(jìn)行tgz打包操作,將打包后的文件作為管道輸入流。
步驟207,將管道輸入流與源數(shù)據(jù)在目標(biāo)主機(jī)上的目標(biāo)路徑以管道的方式異步傳輸給目標(biāo)主機(jī)。
在步驟204-步驟207中,在一實(shí)施例中,服務(wù)器可以啟用次線程根據(jù)操作類型,利用源主機(jī)的sftp服務(wù)獲取源主機(jī)上的源數(shù)據(jù),將源數(shù)據(jù)對(duì)應(yīng)的管道輸入流寫入到管道輸出流函數(shù)(pipedoutputstream)中,服務(wù)器的主線程創(chuàng)建管道輸入流函數(shù)(pipedinputstream),以封裝次線程的管道輸出流函數(shù)(pipedoutputstream),將目標(biāo)路徑和封裝后的管道輸入流函數(shù)(pipedinputstream)作為參數(shù)傳遞給sftpservice.put()函數(shù),即開(kāi)啟源主機(jī)中的源數(shù)據(jù)到目標(biāo)主機(jī)的目標(biāo)路徑的數(shù)據(jù)傳送,從而將源數(shù)據(jù)從源主機(jī)通過(guò)管道的方式異步傳輸給目標(biāo)主機(jī)。
步驟208,確定源數(shù)據(jù)是否發(fā)送完畢,如果源數(shù)據(jù)發(fā)送完畢,執(zhí)行步驟209,如果源數(shù)據(jù)未發(fā)送完畢,繼續(xù)轉(zhuǎn)送源數(shù)據(jù)。
在一實(shí)施例中,服務(wù)器可以根據(jù)管道輸入流函數(shù)(pipedinputstream)的 流結(jié)束標(biāo)志感知粘貼操作是否完成。
步驟209,如果源數(shù)據(jù)發(fā)送完畢,確定操作類型是否為剪切操作,如果操作類型為剪切操作,執(zhí)行步驟210,如果為復(fù)制操作,保留存儲(chǔ)在源主機(jī)上的源數(shù)據(jù)。
步驟210,如果操作類型為剪切操作,刪除源主機(jī)上的源數(shù)據(jù)。
在一實(shí)施例中,服務(wù)器可以根據(jù)crosshostpastedo中的iscut參數(shù)得到操作類型是否為剪切操作,如果為true,則調(diào)用sftpservice,從而刪除源主機(jī)中的源數(shù)據(jù)。
步驟211,控制釋放為操作類型所建立的sftp服務(wù)的連接資源。
作為一個(gè)示例性場(chǎng)景,如圖2b和圖2c所示,當(dāng)用戶需要將主機(jī)a上的源目錄“/home/bhxk”的文件拷貝到主機(jī)b上的目標(biāo)路徑“/home/bhxk”上時(shí),服務(wù)器從請(qǐng)求消息中解析出用戶操作主機(jī)a的操作類型為拷貝后,服務(wù)器通過(guò)上述步驟204獲取到源數(shù)據(jù)后,將目錄內(nèi)的文件進(jìn)行tgz打包操作,將打包后的文件作為管道輸入流,將管道輸入流與源數(shù)據(jù)在主機(jī)b上的“/home/bhxk”以管道的方式異步傳輸給主機(jī)b,從而將源目錄“/home/bhxk”異步傳輸至主機(jī)b上的目標(biāo)目錄“/home/bhxk”。
如果用戶操作主機(jī)a的操作類型為剪切,在服務(wù)器將主機(jī)a上的源數(shù)據(jù)全部轉(zhuǎn)發(fā)給主機(jī)b后,服務(wù)器可以控制主機(jī)a將主機(jī)a上的源目錄“/home/bhxk”的文件刪除。
本實(shí)施例在具有上述圖1a所示實(shí)施例的有益技術(shù)效果的基礎(chǔ)上,由于服務(wù)器使用數(shù)據(jù)中轉(zhuǎn)的方式將源主機(jī)上的源數(shù)據(jù)轉(zhuǎn)發(fā)給目標(biāo)主機(jī),從而可以確保用戶只需在瀏覽器上簡(jiǎn)單地使用快捷操作鍵就可以實(shí)現(xiàn)不同主機(jī)間的文件數(shù)據(jù)的傳輸,大大提高了多主機(jī)之間進(jìn)行主機(jī)間文件復(fù)制、剪切等操作時(shí)的體驗(yàn)。
圖3a為根據(jù)本發(fā)明的示例性實(shí)施例三的數(shù)據(jù)操作方法的流程示意圖,圖3b示出了圖3a中的瀏覽器的界面示意圖之一,圖3c示出了圖3a中的瀏覽器的界面示意圖之二;本實(shí)施例以如何在同一主機(jī)之間進(jìn)行數(shù)據(jù)操作為 例進(jìn)行示例性說(shuō)明,如圖3a所示,包括如下步驟:
步驟301,接收來(lái)自客戶端的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址。
步驟302,確定第一地址與第二地址是否相同,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),執(zhí)行步驟303,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),執(zhí)行步驟309。
步驟303,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),確定源數(shù)據(jù)在源主機(jī)的磁盤上的源地址以及磁盤上的目標(biāo)地址。
步驟304,向源主機(jī)發(fā)送操作指令,其中,該操作指令中攜帶有操作功能、磁盤上的源地址和磁盤上的目標(biāo)地址,以供源主機(jī)根據(jù)該操作指令將源數(shù)據(jù)從磁盤上的源地址操作到目標(biāo)地址。
步驟305,確定源數(shù)據(jù)在磁盤內(nèi)是否傳輸完畢,如果源數(shù)據(jù)在磁盤上傳輸完畢,執(zhí)行步驟306,如果源數(shù)據(jù)在磁盤上未傳輸完畢,繼續(xù)在源主機(jī)的磁盤內(nèi)傳輸源數(shù)據(jù)。
步驟306,如果源數(shù)據(jù)在磁盤上傳輸完畢,確定操作類型是否為剪切操作。
步驟307,如果操作類型為剪切操作,刪除磁盤上的源地址已存儲(chǔ)的源數(shù)據(jù)。
步驟308,向客戶端返回源主機(jī)上的操作結(jié)果,流程結(jié)束。
步驟309,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),將源主機(jī)上的操作類型對(duì)應(yīng)的源數(shù)據(jù)轉(zhuǎn)送至目標(biāo)主機(jī)上,流程結(jié)束。
步驟309的相關(guān)描述可以參照上述圖1a或者圖2a所示實(shí)施例的相關(guān)描述,在此不再詳述。
作為一個(gè)示例性場(chǎng)景,如圖3b和圖3c所示,當(dāng)用戶需要將主機(jī)a上源路徑對(duì)應(yīng)的源數(shù)據(jù)“/home/bhxk/”拷貝到主機(jī)a上的目標(biāo)路徑“/tmp/”時(shí),將操作類型(拷貝)、主機(jī)a的磁盤上的源地址(“/home/bhxk/”)和磁盤上的目標(biāo)地址(“/tmp/”)寫入反饋消息中,以使瀏覽器根據(jù)反饋消息將主 機(jī)a上的磁盤上的源地址(“/home/bhxk/”)上的文件“mydoc.txt”拷貝到磁盤上的目標(biāo)地址(“/tmp/”)上。
如果用戶操作主機(jī)a的操作類型為剪切,在服務(wù)器將主機(jī)a上的“/home/bhxk/”上的源數(shù)據(jù)“mydoc.txt”拷貝到目標(biāo)地址(“/tmp/”)后,可以將“/home/bhxk/”上對(duì)應(yīng)的源數(shù)據(jù)“mydoc.txt”刪除。
本實(shí)施例在具有上述圖1a所示實(shí)施例的有益技術(shù)效果的基礎(chǔ)上,服務(wù)器將從源主機(jī)上的源數(shù)據(jù)拷貝到源主機(jī)上的目標(biāo)地址,從而可以通過(guò)服務(wù)器將不同源主機(jī)上的拷貝、剪切等操作統(tǒng)一管理。
圖4示出了根據(jù)本發(fā)明的示例性實(shí)施例四的數(shù)據(jù)操作方法的流程示意圖,如圖4所示,包括如下步驟:
步驟401,接收來(lái)自客戶端的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址。
步驟402,確定用戶是否具有操作源數(shù)據(jù)的權(quán)限。
在一實(shí)施例中,用戶是否具有操作源數(shù)據(jù)的權(quán)限包括:源數(shù)據(jù)是否可讀、目標(biāo)目錄是否可寫,如果源數(shù)據(jù)對(duì)用戶而言可讀,目標(biāo)目錄可寫,則可直接執(zhí)行下述步驟403,如果源數(shù)據(jù)對(duì)用戶而言不可讀和/或目標(biāo)目錄不可寫,則可提示用戶是否具有權(quán)限對(duì)源數(shù)據(jù)進(jìn)行拷貝、剪切等操作,如果確定用戶可操作,則執(zhí)行下述步驟403,如果用戶不具有操作源數(shù)據(jù)的權(quán)限,則禁止用戶繼續(xù)操作源數(shù)據(jù)。
步驟403,如果用戶具有操作源數(shù)據(jù)的權(quán)限,確定第一地址與第二地址是否相同,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),執(zhí)行步驟404,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),執(zhí)行步驟405。
步驟404,當(dāng)?shù)谝坏刂放c第二地址相同時(shí),控制源主機(jī)在其磁盤上調(diào)用與操作類型相對(duì)應(yīng)的操作,將操作結(jié)果反饋給客戶端。
步驟405,當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),將源主機(jī)上的操作類型對(duì)應(yīng)的源數(shù)據(jù)轉(zhuǎn)送至目標(biāo)主機(jī)上。
上述步驟401、步驟403-步驟405的相關(guān)描述可以參見(jiàn)上述圖1a、圖2a、圖3a任一所述實(shí)施例的相關(guān)說(shuō)明,本實(shí)施例不再詳述。
本實(shí)施例中,通過(guò)對(duì)用戶的權(quán)限進(jìn)行判斷,可以避免用戶操作因不必要的權(quán)限問(wèn)題而中斷,極大地提高用戶操作多主機(jī)的體驗(yàn)。
圖5示出了根據(jù)本發(fā)明的示例性實(shí)施例五的數(shù)據(jù)操作方法的流程示意圖;本實(shí)施例可以應(yīng)用在客戶端,如圖5所示,包括如下步驟:
步驟501,確定用戶在客戶端上操作的源數(shù)據(jù)、源數(shù)據(jù)所在的源主機(jī)的第一地址、目標(biāo)主機(jī)、目標(biāo)主機(jī)的第二地址以及操作源數(shù)據(jù)的操作類型。
步驟502,生成用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、第一地址以及第二地址。
步驟503,向中轉(zhuǎn)設(shè)備發(fā)送請(qǐng)求消息。
本實(shí)施例在客戶端的相關(guān)描述可以參見(jiàn)上述實(shí)施例的相關(guān)描述,在此不再詳述。
由上述描述可知,本發(fā)明實(shí)施例通過(guò)上述步驟501-步驟503可以使用戶無(wú)感知地通過(guò)客戶端將源數(shù)據(jù)當(dāng)作統(tǒng)一的資源在同一主機(jī)或者不同主機(jī)之間任意轉(zhuǎn)存,由于操作簡(jiǎn)單、符合用戶的操作常識(shí),因此極大地提高了文件的傳輸效率和用戶體驗(yàn)。
可選的,上述圖5所示實(shí)施例中,方法還包括:
確定源數(shù)據(jù)的權(quán)限類型是否與用戶的權(quán)限相一致;
當(dāng)源數(shù)據(jù)的權(quán)限類型與用戶的權(quán)限相一致時(shí),確定用戶具有操作源數(shù)據(jù)的權(quán)限;
當(dāng)源數(shù)據(jù)的權(quán)限類型與用戶的權(quán)限不一致時(shí),確定用戶不具有操作源數(shù)據(jù)的權(quán)限。
可選的,上述圖5所示實(shí)施例中,方法還包括:
確定第一地址與第二地址是否相同;
當(dāng)?shù)谝坏刂放c第二地址相同時(shí),確定用戶進(jìn)行主機(jī)內(nèi)的操作;
當(dāng)?shù)谝坏刂放c第二地址不相同時(shí),確定用戶正在進(jìn)行跨主機(jī)的操作。
對(duì)應(yīng)于上述的數(shù)據(jù)操作方法,本申請(qǐng)還提出了圖6所示的根據(jù)本申請(qǐng)的一示例性實(shí)施例的中轉(zhuǎn)設(shè)備的示意結(jié)構(gòu)圖。請(qǐng)參考圖6,在硬件層面,該中轉(zhuǎn)設(shè)備包括第一處理器、內(nèi)部總線、第一網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。第一處理器從非易失性存儲(chǔ)器中讀取對(duì)應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成數(shù)據(jù)操作裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請(qǐng)并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說(shuō)以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。
其中,所述第一網(wǎng)絡(luò)接口,用于接收來(lái)自客戶端的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,所述請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、所述源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址;
所述第一處理器,用于當(dāng)所述第一地址與所述第二地址不相同時(shí),將所述源數(shù)據(jù)從所述源主機(jī)轉(zhuǎn)送至所述目標(biāo)主機(jī)。
對(duì)應(yīng)于上述的數(shù)據(jù)操作方法,本申請(qǐng)還提出了圖7所示的根據(jù)本申請(qǐng)的一示例性實(shí)施例的客戶端的示意結(jié)構(gòu)圖。請(qǐng)參考圖7,在硬件層面,該中轉(zhuǎn)設(shè)備包括第二處理器、內(nèi)部總線、第二網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。第二處理器從非易失性存儲(chǔ)器中讀取對(duì)應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成數(shù)據(jù)操作裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請(qǐng)并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說(shuō)以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。
其中,第二處理器,用于確定用戶在客戶端上操作的源數(shù)據(jù)、源數(shù)據(jù)所在的源主機(jī)的第一地址、目標(biāo)主機(jī)、目標(biāo)主機(jī)的第二地址以及操作源數(shù)據(jù)的操作類型;生成用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、第一地址以及第二地址;
第二網(wǎng)絡(luò)接口,用于向中轉(zhuǎn)設(shè)備發(fā)送請(qǐng)求消息。
圖8示出了根據(jù)本發(fā)明的示例性實(shí)施例一的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意 圖;如圖8所示,該數(shù)據(jù)操作裝置可以包括:接收模塊81、轉(zhuǎn)發(fā)模塊82。其中:
接收模塊81,用于接收來(lái)自客戶端的用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有用戶操作源主機(jī)的操作類型、源主機(jī)的第一地址以及目標(biāo)主機(jī)的第二地址;
轉(zhuǎn)發(fā)模塊82,用于當(dāng)接收模塊81接收到的第一地址與第二地址不相同時(shí),將源數(shù)據(jù)從源主機(jī)轉(zhuǎn)送至目標(biāo)主機(jī)。
圖9示出了根據(jù)本發(fā)明的示例性實(shí)施例二的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;如圖9所示,在上述圖8所示實(shí)施例的基礎(chǔ)上,轉(zhuǎn)發(fā)模塊82可包括:
獲取單元821,用于通過(guò)源主機(jī)的sftp服務(wù)獲取源主機(jī)上的源數(shù)據(jù);
轉(zhuǎn)發(fā)單元822,用于將獲取單元821獲取到的源數(shù)據(jù)的管道輸入流與源數(shù)據(jù)在目標(biāo)主機(jī)上的目標(biāo)路徑以管道的方式異步傳輸給目標(biāo)主機(jī)。
在一實(shí)施例中,裝置還可包括:
第一確定模塊83,用于確定轉(zhuǎn)發(fā)單元822是否將源數(shù)據(jù)發(fā)送完畢;
第二確定模塊84,用于如果第一確定模塊83確定源數(shù)據(jù)發(fā)送完畢,確定操作類型是否為剪切操作;
第一刪除模塊85,用于如果第二確定模塊84確定操作類型為剪切操作,刪除源主機(jī)上的源數(shù)據(jù)。
在一實(shí)施例中,裝置還可包括:
第三確定模塊86,用于確定轉(zhuǎn)發(fā)單元822是否將源數(shù)據(jù)發(fā)送完畢;
第二控制模塊87,用于如果第三確定模塊86確定源數(shù)據(jù)發(fā)送完畢,控制釋放為操作類型所建立的sftp服務(wù)的連接資源。
在一實(shí)施例中,裝置還可包括:
第四確定模塊88,用于確定獲取單元821獲取到的源數(shù)據(jù)的類型是否為目錄;
壓縮模塊89,用于如果第四確定模塊88確定源數(shù)據(jù)的類型為目錄,將目錄內(nèi)的文件進(jìn)行tgz打包操作,將打包后的文件作為管道輸入流;
第五確定模塊90,用于如果第四確定模塊88確定源數(shù)據(jù)的類型為文件,確定源數(shù)據(jù)作為管道輸入流。
圖10示出了根據(jù)本發(fā)明的示例性實(shí)施例三的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;如圖10所示,在上述圖8所示實(shí)施例的基礎(chǔ)上,裝置還可包括:
第六確定模塊91,用于當(dāng)?shù)谝坏刂放c所述第二地址相同時(shí),確定源數(shù)據(jù)在源主機(jī)的磁盤上的源地址以及磁盤上的目標(biāo)地址;
寫入模塊92,用于將操作類型、第六確定模塊91確定的磁盤上的源地址和磁盤上的目標(biāo)地址寫入控制指令;
第一發(fā)送模塊93,用于將寫入模塊92得到的控制指令發(fā)送給源主機(jī),以供源主機(jī)根據(jù)控制指令執(zhí)行與操作類型相對(duì)應(yīng)的操作。
在一實(shí)施例中,裝置還可包括:
第七確定模塊94,用于確定源數(shù)據(jù)在磁盤內(nèi)是否傳輸完畢;
第八確定模塊95,用于如果第七確定模塊94確定源數(shù)據(jù)在磁盤上傳輸完畢,確定操作類型是否為剪切操作;
第二刪除模塊96,用于如果第八確定模塊95確定操作類型為剪切操作,刪除磁盤上的源地址已存儲(chǔ)的源數(shù)據(jù)。
圖11示出了根據(jù)本發(fā)明的示例性實(shí)施例四的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;如圖11所示,在上述圖8所示實(shí)施例的基礎(chǔ)上,裝置還可包括:
第九確定模塊97,用于確定用戶是否具有操作源數(shù)據(jù)的權(quán)限;
如果第九確定模塊97確定用戶具有操作源數(shù)據(jù)的權(quán)限,轉(zhuǎn)發(fā)模塊82執(zhí)行將源數(shù)據(jù)從源主機(jī)轉(zhuǎn)送至目標(biāo)主機(jī)的步驟。
圖12示出了根據(jù)本發(fā)明的示例性實(shí)施例四的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;如圖12所示,可應(yīng)用在客戶端,裝置還可包括:第十確定模塊121、生成模塊122、第二發(fā)送模塊123;其中:
第十確定模塊121,用于確定用戶在客戶端上操作的源數(shù)據(jù)、源數(shù)據(jù)所在的源主機(jī)的第一地址、目標(biāo)主機(jī)、目標(biāo)主機(jī)的第二地址以及操作源數(shù)據(jù)的操作類型;
生成模塊122,用于生成用于開(kāi)啟數(shù)據(jù)傳輸?shù)恼?qǐng)求消息,請(qǐng)求消息中攜帶有第十確定模塊121確定的用戶操作源主機(jī)的操作類型、第一地址以及第二地址;
第二發(fā)送模塊123,用于向中轉(zhuǎn)設(shè)備發(fā)送生成模塊122生成的請(qǐng)求消息。
圖13示出了根據(jù)本發(fā)明的示例性實(shí)施例五的數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖;如圖13所示,在上述圖12所示實(shí)施例基礎(chǔ)上,裝置還可包括:
第十一確定模塊124,用于確定第十確定模塊121確定的源數(shù)據(jù)的權(quán)限類型是否與用戶的權(quán)限相一致;
第十二確定模塊125,用于當(dāng)?shù)谑淮_定模塊124確定源數(shù)據(jù)的權(quán)限類型與用戶的權(quán)限相一致時(shí),確定用戶具有操作源數(shù)據(jù)的權(quán)限;
第十三確定模塊126,用于當(dāng)?shù)谑淮_定模塊124源數(shù)據(jù)的權(quán)限類型與用戶的權(quán)限不一致時(shí),確定用戶不具有操作源數(shù)據(jù)的權(quán)限。
在一實(shí)施例中,裝置還可包括:
第十四確定模塊127,用于確定第十確定模塊121確定的第一地址與第二地址是否相同;
第十五確定模塊128,用于當(dāng)?shù)谑拇_定模塊127確定第一地址與第二地址相同時(shí),確定用戶進(jìn)行主機(jī)內(nèi)的操作;
第十六確定模塊129,用于當(dāng)?shù)谑拇_定模塊127確定第一地址與第二地址不相同時(shí),確定用戶正在進(jìn)行跨主機(jī)的操作。
上述實(shí)施例可見(jiàn),由于中轉(zhuǎn)設(shè)備使用數(shù)據(jù)中轉(zhuǎn)的方式,用戶只需通過(guò)客戶端簡(jiǎn)單地使用按鍵控制即可實(shí)現(xiàn)主機(jī)內(nèi)或者主機(jī)間的文件數(shù)據(jù)的拷貝或者剪切等操作;由于中轉(zhuǎn)設(shè)備還可以進(jìn)行用戶的權(quán)限判斷,因此可以避免用戶的操作因不必要的權(quán)限問(wèn)題而中斷,大大地提高了用戶進(jìn)行主機(jī)間或者主機(jī)內(nèi)的文件復(fù)制操作的體驗(yàn)。
本領(lǐng)域技術(shù)人員在考慮說(shuō)明書及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本申請(qǐng)的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本申請(qǐng)的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本申請(qǐng)的一般性原理并包括本申 請(qǐng)未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書和實(shí)施例僅被視為示例性的,本申請(qǐng)的真正范圍和精神由下面的權(quán)利要求指出。
還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。