當前位置:首頁 » 文件管理 » ftpsync

ftpsync

發布時間: 2022-09-25 01:35:41

❶ FREEBSD 怎麼安裝軟體

1.ports安裝

切換到軟體相應目錄下,make install clean 即可。

這種安裝比較方便,需要維護ports。

國內常用的CVSUP更新站點,

cvsup.FreeBSDChina.org 中國電信 上海市
cvsup2.FreeBSDChina.org 中國聯通 浙江省杭州市
cvsup3.FreeBSDChina.org 中國電信 上海市
cvsup4.FreeBSDChina.org 中國網通 北京市
cvsup5.FreeBSDChina.org 中國教育網 北京市

詳情見
http://www.freebsdchina.org/mirrors.php

2.pkg_add 安裝(速度最快)

如果怕編譯慢的話,可以直接用pkg_add 快速安裝。

環境變數設置,在 /etc/csh.cshrc添加:

setenv PACKAGEROOT
ftp://ftp.freebsdchina.org
(設自己近的遠程主機)

如: pkg_add -r vsftpd (從遠程主機下載譯好的安裝包來安裝) .

有個缺點就是安裝時的參數不能自定義,不太靈活,適用於要求不高的環境。

3.源代碼安裝

下載軟體源代碼到本地,通過下面三個經典步驟來安裝。

./configure
make
make install

比較靈活,也這需要一定的操作能力來排除在安裝過程中出現的一些問題。

這三種方法的前兩種用下面命令查看安裝信息(第三則無),並在將來不用時很容易卸載干凈。

pkg_info | grep ***

第三種在不用時直接把安裝目錄刪除即可(最好在編譯的時候用--prefix參數指定安裝路徑,在將來好管理),但不太容易卸載干凈。

❷ 怎麼安裝sublime 插件ftpsync

安裝 FTPSync
打開工具列 Preferences → Package Control 輸入 install Package 按 ENTER
再輸入 FTPSync 按 ENTER 安裝
設置、執行 FTPSync :
[1] 建立一個文件夾,舉例的我就建立在桌面上:

建立一個文件夾

建立一個文件夾
2、打開sublime,菜單中打開 Project - Add Folder to Project

Project - Add Folder to Project
3、選擇您剛剛建立的文件夾

選擇您剛剛建立的文件夾
4、在左側出現的文件夾上右鍵選擇FTPSync ->Setup FTPSync in this folder,如果出現不能選擇的情況,請重新啟動sublime,即可選擇:

Setup FTPSync in this folder
5、這時候會出現一個ftpsync.settings,然後將該文件設置正確,即可實現功能了,可以對你剛加入的 Project 上按右鍵 FTPSync → Download 下載 FTP上的程序文件

ftpsync.settings
6、下載:

FTPSync → Download
參考配置文件:

{
// HELP / INFO moved to bottom
// Remove "//" to uncomment settings directive
"default": {
"host": "ftp.example.com", //這里需要設置
"username": "your_login", // or null for anonymous login 這里需要設置
"password": "your_password", //這里需要設置
"path": "/",
"upload_on_save": true // set *false* if you do not want to upload on save!
// "port": 21,
// "tls": false,
// "timeout": 30, // [seconds]
// "passive": true,
// "download_on_open": false,
// "overwrite_newer_prevention": true,
// "default_folder_permissions": "755",
// "default_upload_permissions": null, // null = no action taken
// "time_offset": 0, // [seconds]
// "always_sync_local_permissions": true,
// Value "auto" = use UTF-8 if availible (FEAT: UTF8), otherwise use local
// "encoding": "auto",
// Trade small performance impact for more stable and secure transfer (old file is intact until the download is finished)
// "use_tempfile": true,
// Regular expression, recommending using \b in general and /.../ for folders to avoid matching substrings
// "ignore": "",
// Can be used for increase of performance or to allow build scripts to finish
// "upload_delay": 0, // [seconds]
// Only if the server has MFMT extension installed
// "set_remote_lastmodified": true,
// Chmod value for files newly downloaded by FTPSync
// "auto" = same as on server
// null = no action taken
// "0644" = example for direct value
// "default_local_permissions": "auto",
// List of lists with pathnames and filenames to folders to be watched for change in between delay (upload_delay)
// example: after_save_watch: [ [ "code/assets/css", "*.css" ], [ "code/assets/", "*.jpg, *.png, *.gif" ] ]
// used only in conjunction with upload_on_save and upload_delay **
// For more info see https://github.com/NoxArt/SublimeText2-FTPSync/wiki/Why-and-how-to-use-afterwatch
// "after_save_watch": []
}
// ------ INFO ----------------------------------------------------------------------
// Index page
// --- https://github.com/NoxArt/SublimeText2-FTPSync/
// For settings description see:
// --- https://github.com/NoxArt/SublimeText2-FTPSync/wiki/All-settings
// For more info see:
// --- https://github.com/NoxArt/SublimeText2-FTPSync/wiki/_pages
// Want to ask? Report a bug?
// --- Hit: https://github.com/NoxArt/SublimeText2-FTPSync/issues/new
// ** Commas **
// Don't forget about commas -> each entry needs a comma at the end of line EXCEPT the last (uncommented) entry
// For precise info see http://www.json.org
// Also try http://jsonlint.com
// ** Comments **
// The "//" are so called "comments", all text after it is ignored,
// they are used for notes or deactivating an entry
// Non-basic settings are deactivated and default options specified in the global settings file,
// that is $packages$/FTPSync/ftpsync.sublime-settings (where $packages$ is a path where Sublime
// keeps packages in your Operating System) accessible via Preferences > Package Settings > FTPSync
// Use Settings - User to override the global defaults
// More info about Sublime Text 2 settings on http://www.sublimetext.com/docs/2/settings.html
}

❸ FTPSync好不好

BatchSync FTP是一款ftp伺服器之間的高速備份工具,可以用來快速同步數據,備份網站內容,製作鏡像網站等,也可以通過計劃任務的方式實現無人職守工作,另外還可以作為系統的一項服務,就算沒有用戶登錄電腦,它也可以工作 。針對站長管理網站來說,還是很方便的。

❹ 跪求大神給個ftp synchronizer破解版,小弟不勝感激!

前言:此版本的軟體安裝包附加破解教程我可以給您一份,不過僅供個人使用,切勿傳播,希望可以幫助您

FTP Synchronizer安裝教程

1、使用本站本站提供的網路網盤下載並解壓好文件,如下圖所示。

2、雙擊「ftpsync-pro.exe」主程序運行,在安裝向導界面節點點擊「next」。

3、在許可協議界面,選擇「T Accept」,點擊「next」。

4、選擇好軟體安裝路徑,點擊「next」。

5、選擇需要創建的快捷方式,點擊「next」。

點擊下載ftp synchronizer破解版

❺ 求助hexo ftp 部署錯誤

直接用ftpsync了,不用hexo-deployer-ftpsync。

我知道了,是因為設置參數的時候:remote: ./demo 必須這樣設置,而且在hexo的_confg.yml里需要在plugin里添加hexo-deployer-ftpsync

❻ sublime text 怎麼添加python

Sublime Text 3 (ST3) 是一個輕量級的跨平台文字編輯器,尤以其輕快的速度,易用性和強大的社區支持而著稱。它一經面世便被認為是一個傑出的編輯器,而它真正的強大之處在於你可以使用 Package Control 來增加它的功能以及可以進行各種自定義設置。
在本文章中,我們將會看到如何將 Sublime Text 打造成為 Python 的全棧開發環境(從前端到後端),如何通過自定義主題和插件來增強它的基本功能,並且還將會涉及到很多使 ST3 變得更加強大的常用的命令,特性以及快捷鍵。

本教程將假定你使用的是 Mac 電腦並且習慣於使用終端。如果你使用的是 Windows 或者 linux 操作系統,本文涉及到的一些命令將有可能會有所不同,但是你應該仍然可以很容易地通過 Google 來獲取到與本教程相關的解答。
在我們開始之前,讓我們先討論一下我所謂的」全棧」具體指的是什麼。
在現在的 HTML5 以及移動設備開發中,Javascript 簡直無處不在。是的,無處不在!僅僅使用 Python 基於某個框架比如 Django 或者 Flask 進行開發是不夠的。如果你想從始至終真正的自己開發一個網站的話,你必須熟悉 Javascript(以及 Javascript 的一大堆的框架),REST API(含狀態傳輸 API),響應式設計,當然還有 HTML 和 CSS,以及其他許多東西。現在讓我們來面對一個問題:就像其他任何一個手藝人一樣,為了成為一個最厲害的程序員,你的工具必須犀利,你的開發環境必須被打造成全棧開發——那就是我們馬上將要開始的工作…
特性
讓我們從 ST3 的一些默認特性開始著手吧…
Split Layouts 允許你將你的許多文件放到很多分割開來的視窗中。如果你正在進行以測試為目的的開發(將 Python 代碼放在一個視窗中,而測試腳本放在另一個視窗中)或者正在進行前端開發(將 HTML 代碼放在一個視窗里,CSS/Javascript 代碼放在另一個視窗里)的時候將會非常有用。
Vintage Mode 讓你能夠在 ST3 中使用 vi 模式。
Chrome-like Tabs 讓你在多個文件中切換變得更加方便。
Automatic loading of the last session 幫你自動打開你上次關閉的時候編輯器中所有打開的文件。我總是一直開著 ST3,而且其中打開著一大堆項目——當我重啟電腦以後, 它能夠自動幫我打開所有的這些文件和文件夾。
Code Snippets 允許你通過一兩個簡單的關鍵字就能寫出一段常用的代碼片(Snippets),從而增加你的生產效率。比如,你只需要打開一個文件,輸入 「lorem」 然後敲擊 tab 鍵,就會自動生成一段亂數假文(譯者註: 一種用於測試文章或文字在不同字型、版型下看起來的效果等的文字)。又比如在 Python 代碼中,你可以輸入 「defs」 然後敲擊 tab 鍵,你就能得到一段通用的函數定義。
同時,你還可以點擊 Tools > New Snippet 來創建屬於你自己的代碼片。請參照這個 文檔來獲取幫助,也可以在 這里 查看我個人用到的一些 snippets。
自定義 Sublime Text 3
在你下載完 ST3 以後…
在命令行中添加 subl 命令
就像 TextMate 的 mate 命令一樣,Sublime Text 擁有一個叫做 subl 的命令行工具,可以用來通過終端打開一個文件或者一整個文件夾。
你需要建立一個指向 subl 二進制文件的符號鏈接來使 subl 命令有效:

Python

1

$ ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl

嘗試使用以下命令來打開 Sublime 來確保鏈接生效了:

Python

1

$ subl

如果以上命令沒有效果,你可能需要將 /bin 添加到你的環境變數中:

Python

1

$ echo "export PATH=~/bin:$PATH" >> ~/.profile

然後重新嘗試第一步。
如果你仍然遇到問題,嘗試查看 這篇 文章來獲取幫助。 或者你可以看看如何在 Windows和 Linux 中建立符號鏈接。
現在你就可以通過下述命令來打開文件或者文件夾了:

Python

1
2
3
4
5
6
7
8

# open the current directory
$ subl .

# open a directory called tests
$ subl ~/Documents/test

# open a file called text.txt
$ subl test.txt

如果路徑中含有空格,你必須使用雙引號將路徑括起來:

Python

1

$ subl "~/Documents/test/my test file.txt"

想要查詢所有可用的命令,請打開幫助文件:

Python

1

$ subl --help

安裝 Package Control
為了使用眾多的 插件 來擴展 Sublime 的功能,你需要安裝一個叫做 Package Control 的插件管理器——這個東西你必須要手動安裝。但是一旦你安裝好了以後,你就可以使用 Package Control 來安裝,移除或者升級所有的 ST3 插件了。
點擊 這里 從 Sublime Text 3 官方獲取用於安裝的代碼。依次點擊 View > Show Console 打開 ST3 的控制台。在控制台中粘貼剛才的代碼,然後點擊回車。最後重啟 ST3。
現在你可以通過快捷鍵 cmd+shift+P 打開 Package Control 來安裝其他的插件了。輸入 install 然後你就能看見屏幕上出現了 Package Control: Install Package,點擊回車然後搜索你想要的插件。
其他一些相關命令如下:
List Packages 顯示所有已安裝的插件
Remove Packages 移除一個指定的插件
Upgrade Package 更新一個指定的插件
Upgrade/Overwrite All Packages 更新所有已安裝的插件
請查閱官方 文檔 獲取更多的命令。

創建自定義配置文件
你可以通過一個基於 JSON 的配置文件來充分的自定義 Sublime Text,這使得轉移或者同步你的自定義文件到另一個系統變得非常容易。首先,我們需要新建我們自己的配置文件。我們最好是為不同的系統環境和編程語言各自創建一個配置文件。
依次點擊 Sublime Text > Preferences > Settings – User 來創建一個配置文件。在該文件中添加一個空的 JSON 類然後就可以在其中寫入你的配置內容了。如下所示:

Python

1
2
3
4
5
6
7

{
// base settings
"auto_complete": false,
"sublimelinter": false,
"tab_size": 2,
"word_wrap": true
}

如果想為特定的編程語言新建配置文件的話,請點擊 Sublime Text > Preferences > Settings – More > Syntax Specific – User。然後按照 LANGUAGE.sublime-settings 的格式保存該配置文件。例如想新建一個 Python 專用的配置文件,請將該文件保存為 Python.sublime-settings。
你完全可以按照你自己的喜好來進行各項配置;不過我強烈推薦以我的這份 配置文件 以及 Python 配置 作為基礎,然後修改成你所需要的內容。
一個可選項: 你可以使用 Dropbox 來同步你的所有配置。你只需要將你的配置文件上傳到 Dropbox 然後就可以將你的配置同步到你的任意一台設備上了。
你可以在 Sublime Text Unofficial Documentation 找到一些非常好的參考配置。
主題
ST3 為你提供了完全自定義化一個適合自己主題的能力。當然,你如果不是那麼的挑剔的話,你可以通過 Package Control 從許許多多的由 Sublime 社區設計的 主題 中下載一個。 在下載之前你可以通過 ColorSublime 來預覽這些主題。
廣受歡迎的的 Soda Dark 和極簡風格的 Flatland 是我個人最喜歡的兩個主題。
在安裝完了主題以後, 請務必更新你的配置文件. Sublime Text > Preferences > Settings – User:

Python

1
2
3
4

{
"theme": "Flatland Dark.sublime-theme",
"color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme"
}

插件
除了那些主題以外,我還會使用以下這一些插件來提升我的工作效率。
SideBarEnhancements
SideBarEnhancements 擴展了側邊欄中菜單選項的數量,從而提升你的工作效率。諸如」New file」 和 「Duplicate」 這樣的選項對於 ST3 來說實在是太重要了, 我甚至覺得 ST3 本來就應該提供這些功能。而且僅憑 「Delete」 這一個功能就讓這個插件值得下載。這個功能將你會在你刪除文件的時候把它放入回收站。雖然這個功能乍一看沒什麼用,但是當你沒有使用這樣的功能而徹底刪除了一個文件的時候,除非你用了版本管理軟體,否則你將很難恢復這個文件。

現在就下載吧!
Anaconda
Anaconda 是一個終極 Python 插件。它為 ST3 增添了多項 IDE 類似的功能,例如:
Autocompletion 自動完成,該選項默認開啟,同時提供多種配置選項。
Code linting 使用支持 pep8 標準的 PyLint 或者 PyFlakes。因為我個人使用的是另外的 linting 工具,所以我會在 Anaconda 的配置文件 Anaconda.sublime-settings中將 linting 完全禁用。操作如下: Sublime > Preferences > Package Settings > Anaconda > Settings – User: {"anaconda_linting": false}
McCabe code complexity checker 讓你可以在特定的文件中使用 McCabe complexity checker. 如果你對軟體復雜度檢查工具不太熟悉的話,請務必先瀏覽上邊的鏈接。
Goto Definitions 能夠在你的整個工程中查找並且顯示任意一個變數,函數,或者類的定義。
Find Usage 能夠快速的查找某個變數,函數或者類在某個特定文件中的什麼地方被使用了。
Show Documentation: 能夠顯示一個函數或者類的說明性字元串(當然,是在定義了字元串的情況下)

你可以在這里,或者通過 ST3 的 Package Settings: Sublime Text > Preferences > Package Settings > Anaconda > README 來查看所有這些特性。
SublimeCodeIntel 是另外一個非常流行的插件,它的許多特性與 Anaconda 類似。我建議同時也試試它。
Djaneiro
Djaneiro 支持 Django 模版和關鍵字高亮以及許多實用的代碼片(snippets)功能。其中的 snippets 絕對是省時神器。你可以通過很少幾個關鍵字就能創建許多常見的 Django 代碼塊比如 templates,models,forms,以及 views。請查看官方文檔獲取 snippets 列表。
我個人非常喜歡的以下兩個用於創建 template 的代碼片:輸入 var 就可以新建 {{ }},而輸入 tag 就能新建 {% %}。
requirementstxt
Requirementstxt 可以為你的 requirements.txt 文件提供自動補全,語法高亮以及版本管理功能。
SublimeLinter
SublimeLinter 是 ST3 的一個代碼靜態檢查工具框架(linter)。這個插件本身來說並不包含任何的一個 linter,但是你可以通過在 Package Control 中輸入 SublimeLinter-[linter_name] 的方式來安裝一個 linter。你可以點擊這里查看官方的 linter。同時你還可以在 Package Control 中查看到許多的第三方 linter。請點擊這里查看安裝說明。
對於 Python 的代碼靜態檢查器,我建議使用 SublimeLinter-pyflakes 和 SublimeLinter-pep8。
與此同時,我也會使用 SublimeLinter-jshint, SublimeLinter-pyyaml, SublimeLinter-csslint,SublimeLinter-html-tidy,以及 SublimeLinter-json。
以上大多數的 linter 都需要先安裝一些依賴庫才能使用,所以在安裝前請務必閱讀他們的安裝說明。
你可以通過修改用戶自定義的 SublimeLinter.sublime-settings 文件來對你的每個 linter 個性化:Sublime Text > Preferences > Package Settings > SublimeLinter > Settings – User. 例如我通過以下代碼來忽略 pep8 中的錯誤和警告:

Python

1
2
3
4
5
6
7
8

"pep8": {
"@disable": false,
"args": [],
"excludes": [],
"ignore": "E501,C0301,W0142,W0402,R0201,E1101,E1102,C0103,R0901,R0903,R0904,C1001,W0223,W0232,W0201,E1103,R0801,C0111",
"max-line-length": 100,
"select": ""
},

GitGutter
GitGutter 讓 ST3 能在左邊欄的位置顯示一個小圖標,用以表示在最後一次提交以後,代碼是否有追加,修改或者刪除。

如果你想讓該插件支持分布式的版本管理軟體(Git,SVN,Bazaar 和 Mercurial)。請查看 Modific。
FTPSync
FTPSync 能夠將你的項目和遠程文件進行同步。你只需要打開文件便可以下載更新(如果你的遠端文件比本地更加新的話),而且如果你對本地文件做出了修改可以立即同步到遠程伺服器。這是非常棒的同步本地文件和遠程文件的方法。你可以通過以下的方法來添加你的遠程伺服器:Sublime Text > Preferences > Package Settings > FTPSync > Setup FTPSync.
Sample settings:

Python

1
2
3
4
5
6
7
8
9
10
11

{
'primary': {
host: 'ftp.mywebsite.com',
username: 'johnsmith',
password: 'secretpassword',
path: '/www/',

upload_on_save: true,
tls: true
}
}

我個人喜歡把密碼設為 null 因為我不想讓我的密碼出現在配置文件中。這樣 FTPSync 會在我每次保存完文件後要求我輸入密碼。
AdvancedNewFile
AdvancedNewFile 可以讓你在 ST3 中使用簡單的幾個快捷鍵便創建一個新的文件夾或者一個新的文件:
你只需要通過幾個快捷鍵便可以打開 AdvancedNewFile 的輸入框。然後輸入路徑和文件名。當你按下回車鍵後,文件便被創建了。除此之外,如果目標文件夾並不存在的話,該文件夾將會被自動建立。在默認情況下,你創建的文件的路徑將會顯示在狀態欄中。
請查看 Github 上的這篇文檔來獲取更為詳細的使用說明。特別建議請詳細閱讀TAB自動補全(Tab Completion)以及預定義別名(Predefined Aliases)部分。
我把「cmd+n」設置為了通過 AdvancedNewFile 創建新文件的快捷方式。該快捷鍵可以通過修改 Key Bindings – User file 來實現 Sublime Text > Preferences > Package Settings > AdvancedNewFile > Key Bindings – User:

Python

1
2
3

[
{ "keys": ["cmd+n"], "command": "advanced_new_file_new"}
]

你也可以更改默認打開的文件夾路徑:Sublime Text > Preferences > Package Settings > AdvancedNewFile > Settings – User

Python

1

{"default_initial": "/Users/michaelherman/Documents/repos"}

這樣我創建新文件的時候,/Users/michaelherman/Documents/repos將會自動被添加到路徑最前方,因為99%的情況下我都會把我的腳本放在這個路徑下。
Emmet
Emmet,以前叫做 Zen Coding,讓你可以通過簡單的縮寫來創建 HTML 或者 CSS 的代碼塊。
例如,你只需要輸入感嘆號!,然後按下 tab 鍵,便可以在一個 HTML 文件中創建一段帶有幾個基本標簽的 HTML5 文檔類型的代碼:

Python

1
2
3
4
5
6
7
8
9
10

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

</body>
</html>

請查看官方文檔或者速查手冊獲取更多信息。
Markdown Preview
Markdown Preview 可以用來預覽和編譯 markdown 文件。
你可以打開 Package Manager 然後輸入 Markdown Preview 來查看可用的命令:
Markdown Preview: Python Mrakdown: 在瀏覽器中預覽
Markdown Preview: Python Mrakdown: 導出 HTML 文件
Markdown Preview: Python Mrakdown: 拷貝到剪貼板
Markdown Preview: Github風格Markdown: 在瀏覽器中預覽
Markdown Preview: Github風格Markdown: 導出 HTML 文件
Markdown Preview: Github風格Markdown: 拷貝到剪貼板
Markdown Preview: 打開Markdown速查手冊
一旦你完成轉換,你之後的所有保存都會立即反映到轉換的文件中。
快捷鍵
跳轉到任意內容 (「cmd+p」) 用來快速查找和打開文件。你僅僅只需要工程中文件的一部分路徑或者文件名你就可以很容易的打開這個文件。這在一個大型的 Django 工程中顯得非常方便。
跳轉到指定行 (「ctrl+g」) 讓你在當前文件中跳轉到指定行數。
跳轉到標志 (「cmd+r」) 可以列出當前文件中所有的函數或者類,讓你更方便查找。你可以通過輸入關鍵字來查找你所需要的函數或者類。
跳轉到行首 (cmd+left-arrow-key) 與 跳轉到行尾 (cmd+right-arrow-key)
刪除當前行(ctrl+shift+k)
多重編輯 是我迄今為止最喜歡的快捷鍵

Python

1
2

1.選定一個單詞,點擊 **「cmd+d」** 來選擇同樣的單詞,再次點擊 **「cmd+d」** 繼續選擇下一個單詞…
2.或者 **「cmd+單擊」** 來指定多個你想要同時修改的地方。

塊編輯 (option+left-mouse-click) 用於選擇一整塊的內容。通常在整理 CSV 文件的時候用於刪除空白內容。
如果想了解更多關於快捷鍵的內容,請看一下這篇文章。
自定義命令
你可以很容易地使用 Python 來編輯你自己的自定義命令和快捷鍵組合。目前我個人使用的有以下這些:
拷貝當前文件路徑到剪貼板 – 鏈接
關閉除當前活動標簽頁以外的所有其他標簽頁 – 鏈接
通過文件選項打開你的 Package 文件夾(Sublime > Preferences > Browse Packages),然後打開 User 文件夾,接下來將上述的 Python 文件添加到 「/Sublime Text 3/Packages/User」 文件夾中。最後請在 Key Bindings – User file (Sublime Text > Preferences > Package Settings > AdvancedNewFile > Key Bindings – User) 文件中完成快捷鍵綁定。

Python

1
2
3
4
5
6
7
8
9
10
11
12

[
// Copy file name
{
"keys": ["cmd+shift+c"],
"command": "_path_to_clipboard"
},
// Close all other tabs
{
"keys": ["cmd+alt+w"],
"command": "close_tabs"
}
]

❼ 用python寫測試腳本,從本地傳文件至ftp遠程路徑

轉自:http://news.tuxi.com.cn/kf/article/jhtdj.htm

本文實例講述了python實現支持目錄FTP上傳下載文件的方法。分享給大家供大家參考。具體如下:

該程序支持ftp上傳下載文件和目錄、適用於windows和linux平台。

#!/usr/bin/envpython
#-*-coding:utf-8-*-
importftplib
importos
importsys
classFTPSync(object):
conn=ftplib.FTP()
def__init__(self,host,port=21):
self.conn.connect(host,port)
deflogin(self,username,password):
self.conn.login(username,password)
self.conn.set_pasv(False)
printself.conn.welcome
deftest(self,ftp_path):
printftp_path
printself._is_ftp_dir(ftp_path)
#printself.conn.nlst(ftp_path)
#self.conn.retrlines('LIST./a/b')
#ftp_parent_path=os.path.dirname(ftp_path)
#ftp_dir_name=os.path.basename(ftp_path)
#printftp_parent_path
#printftp_dir_name
def_is_ftp_file(self,ftp_path):
try:
ifftp_pathinself.conn.nlst(os.path.dirname(ftp_path)):
returnTrue
else:
returnFalse
exceptftplib.error_perm,e:
returnFalse
def_ftp_list(self,line):
list=line.split('')
ifself.ftp_dir_name==list[-1]andlist[0].startswith('d'):
self._is_dir=True
def_is_ftp_dir(self,ftp_path):
ftp_path=ftp_path.rstrip('/')
ftp_parent_path=os.path.dirname(ftp_path)
self.ftp_dir_name=os.path.basename(ftp_path)
self._is_dir=False
ifftp_path=='.'orftp_path=='./'orftp_path=='':
self._is_dir=True
else:
#thisuescallbackfunction,thatwillchange_is_dirvalue
try:
self.conn.retrlines('LIST%s'%ftp_parent_path,self._ftp_list)
exceptftplib.error_perm,e:
returnself._is_dir
returnself._is_dir
defget_file(self,ftp_path,local_path='.'):
ftp_path=ftp_path.rstrip('/')
ifself._is_ftp_file(ftp_path):
file_name=os.path.basename(ftp_path)
#如果本地路徑是目錄,下載文件到該目錄
ifos.path.isdir(local_path):
file_handler=open(os.path.join(local_path,file_name),'wb')
self.conn.retrbinary("RETR%s"%(ftp_path),file_handler.write)
file_handler.close()
#如果本地路徑不是目錄,但上層目錄存在,則按照本地路徑的文件名作為下載的文件名稱
elifos.path.isdir(os.path.dirname(local_path)):
file_handler=open(local_path,'wb')
self.conn.retrbinary("RETR%s"%(ftp_path),file_handler.write)
file_handler.close()
#如果本地路徑不是目錄,且上層目錄不存在,則退出
else:
print'EROOR:Thedir:%sisnotexist'%os.path.dirname(local_path)
else:
print'EROOR:Theftpfile:%sisnotexist'%ftp_path
defput_file(self,local_path,ftp_path='.'):
ftp_path=ftp_path.rstrip('/')
ifos.path.isfile(local_path):
file_handler=open(local_path,"r")
local_file_name=os.path.basename(local_path)
#如果遠程路徑是個目錄,則上傳文件到這個目錄,文件名不變
ifself._is_ftp_dir(ftp_path):
self.conn.storbinary('STOR%s'%os.path.join(ftp_path,local_file_name),file_handler)
#如果遠程路徑的上層是個目錄,則上傳文件,文件名按照給定命名
elifself._is_ftp_dir(os.path.dirname(ftp_path)):
print'STOR%s'%ftp_path
self.conn.storbinary('STOR%s'%ftp_path,file_handler)
#如果遠程路徑不是目錄,且上一層的目錄也不存在,則提示給定遠程路徑錯誤
else:
print'EROOR:Theftppath:%siserror'%ftp_path
file_handler.close()
else:
print'ERROR:Thefile:%sisnotexist'%local_path
defget_dir(self,ftp_path,local_path='.',begin=True):
ftp_path=ftp_path.rstrip('/')
#當ftp目錄存在時下載
ifself._is_ftp_dir(ftp_path):
#如果下載到本地當前目錄下,並創建目錄
#下載初始化:如果給定的本地路徑不存在需要創建,同時將ftp的目錄存放在給定的本地目錄下。
#ftp目錄下文件存放的路徑為local_path=local_path+os.path.basename(ftp_path)
#例如:將ftp文件夾a下載到本地的a/b目錄下,則ftp的a目錄下的文件將下載到本地的a/b/a目錄下
ifbegin:
ifnotos.path.isdir(local_path):
os.makedirs(local_path)
local_path=os.path.join(local_path,os.path.basename(ftp_path))
#如果本地目錄不存在,則創建目錄
ifnotos.path.isdir(local_path):
os.makedirs(local_path)
#進入ftp目錄,開始遞歸查詢
self.conn.cwd(ftp_path)
ftp_files=self.conn.nlst()
forfileinftp_files:
local_file=os.path.join(local_path,file)
#如果fileftp路徑是目錄則遞歸上傳目錄(不需要再進行初始化begin的標志修改為False)
#如果fileftp路徑是文件則直接上傳文件
ifself._is_ftp_dir(file):
self.get_dir(file,local_file,False)
else:
self.get_file(file,local_file)
#如果當前ftp目錄文件已經遍歷完畢返回上一層目錄
self.conn.cwd("..")
return
else:
print'ERROR:Thedir:%sisnotexist'%ftp_path
return

defput_dir(self,local_path,ftp_path='.',begin=True):
ftp_path=ftp_path.rstrip('/')
#當本地目錄存在時上傳
ifos.path.isdir(local_path):
#上傳初始化:如果給定的ftp路徑不存在需要創建,同時將本地的目錄存放在給定的ftp目錄下。
#本地目錄下文件存放的路徑為ftp_path=ftp_path+os.path.basename(local_path)
#例如:將本地文件夾a上傳到ftp的a/b目錄下,則本地a目錄下的文件將上傳的ftp的a/b/a目錄下
ifbegin:
ifnotself._is_ftp_dir(ftp_path):
self.conn.mkd(ftp_path)
ftp_path=os.path.join(ftp_path,os.path.basename(local_path))
#如果ftp路徑不是目錄,則創建目錄
ifnotself._is_ftp_dir(ftp_path):
self.conn.mkd(ftp_path)

#進入本地目錄,開始遞歸查詢
os.chdir(local_path)
local_files=os.listdir('.')
forfileinlocal_files:
#如果file本地路徑是目錄則遞歸上傳目錄(不需要再進行初始化begin的標志修改為False)
#如果file本地路徑是文件則直接上傳文件
ifos.path.isdir(file):
ftp_path=os.path.join(ftp_path,file)
self.put_dir(file,ftp_path,False)
else:
self.put_file(file,ftp_path)
#如果當前本地目錄文件已經遍歷完畢返回上一層目錄
os.chdir("..")
else:
print'ERROR:Thedir:%sisnotexist'%local_path
return
if__name__=='__main__':
ftp=FTPSync('192.168.1.110')
ftp.login('test','test')
#上傳文件,不重命名
#ftp.put_file('111.txt','a/b')
#上傳文件,重命名
#ftp.put_file('111.txt','a/112.txt')
#下載文件,不重命名
#ftp.get_file('/a/111.txt',r'D:\')
#下載文件,重命名
#ftp.get_file('/a/111.txt',r'D:112.txt')
#下載到已經存在的文件夾
#ftp.get_dir('a/b/c',r'D:\a')
#下載到不存在的文件夾
#ftp.get_dir('a/b/c',r'D:\aa')
#上傳到已經存在的文件夾
ftp.put_dir('b','a')
#上傳到不存在的文件夾
ftp.put_dir('b','aa/B/')

希望本文所述對大家的Python程序設計有所幫助。

以下轉自:http://blog.csdn.net/linda1000/article/details/8255771

Python中的ftplib模塊

Python中默認安裝的ftplib模塊定義了FTP類,其中函數有限,可用來實現簡單的ftp客戶端,用於上傳或下載文件

FTP的工作流程及基本操作可參考協議RFC959

ftp登陸連接

from ftplib import FTP #載入ftp模塊

ftp=FTP() #設置變數
ftp.set_debuglevel(2) #打開調試級別2,顯示詳細信息
ftp.connect("IP","port") #連接的ftp sever和埠
ftp.login("user","password")#連接的用戶名,密碼
print ftp.getwelcome() #列印出歡迎信息
ftp.cmd("xxx/xxx") #更改遠程目錄
bufsize=1024 #設置的緩沖區大小
filename="filename.txt" #需要下載的文件
file_handle=open(filename,"wb").write #以寫模式在本地打開文件
ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #接收伺服器上文件並寫入本地文件
ftp.set_debuglevel(0) #關閉調試模式
ftp.quit #退出ftp

ftp相關命令操作

ftp.cwd(pathname) #設置FTP當前操作的路徑
ftp.dir() #顯示目錄下文件信息
ftp.nlst() #獲取目錄下的文件
ftp.mkd(pathname) #新建遠程目錄
ftp.pwd() #返回當前所在位置
ftp.rmd(dirname) #刪除遠程目錄
ftp.delete(filename) #刪除遠程文件
ftp.rename(fromname, toname)#將fromname修改名稱為toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上傳目標文件
ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下載FTP文件

網上找到一個具體的例子:

#例:FTP編程
fromftplibimportFTP

ftp=FTP()
timeout=30
port=21
ftp.connect('192.168.1.188',port,timeout)#連接FTP伺服器
ftp.login('UserName','888888')#登錄
printftp.getwelcome()#獲得歡迎信息
ftp.cwd('file/test')#設置FTP路徑
list=ftp.nlst()#獲得目錄列表
fornameinlist:
print(name)#列印文件名字
path='d:/data/'+name#文件保存路徑
f=open(path,'wb')#打開要保存文件
filename='RETR'+name#保存FTP文件
ftp.retrbinary(filename,f.write)#保存FTP上的文件
ftp.delete(name)#刪除FTP文件
ftp.storbinary('STOR'+filename,open(path,'rb'))#上傳FTP文件
ftp.quit()#退出FTP伺服器

完整的模板:

#!/usr/bin/python
#-*-coding:utf-8-*-
importftplib
importos
importsocket

HOST='ftp.mozilla.org'
DIRN='pub/mozilla.org/webtools'
FILE='bugzilla-3.6.7.tar.gz'
defmain():
try:
f=ftplib.FTP(HOST)
except(socket.error,socket.gaierror):
print'ERROR:cannotreach"%s"'%HOST
return
print'***Connectedtohost"%s"'%HOST

try:
f.login()
exceptftplib.error_perm:
print'ERROR:cannotloginanonymously'
f.quit()
return
print'***Loggedinas"anonymously"'
try:
f.cwd(DIRN)
exceptftplib.error_perm:
print'ERRORLcannotCDto"%s"'%DIRN
f.quit()
return
print'***Changedto"%s"folder'%DIRN
try:
#傳一個回調函數給retrbinary()它在每接收一個二進制數據時都會被調用
f.retrbinary('RETR%s'%FILE,open(FILE,'wb').write)
exceptftplib.error_perm:
print'ERROR:cannotreadfile"%s"'%FILE
os.unlink(FILE)
else:
print'***Downloaded"%s"toCWD'%FILE
f.quit()
return

if__name__=='__main__':
main()

❽ 有什麼比較好的簡易的家庭雲方案值得推薦

換只能路游戲+移動硬碟肯定是可以。當然我不知道你現在無線ap是個什麼配置,使用普通路由器做的AP,還是買的專業AP。

能路由器推薦的很多。所謂只能路由器就是配置更高端的功能,可以添加第三方應用。比較簡單的省心的就是小米路由、極路由、360路由、tplink、dlink。比較高端一點的,有華碩、syslink(已從思科剝離)、網件等高端家用路由器,價格基本在500-2000.

高端路由器,可以傻瓜用,也可以燒腦的用,甚至可以刷第三方固件。自己telnet上去直接修改配置文件。

還有專業路由器,直接不推薦了。省心路由。就是把常見的場景都做好了解決方案,直接用就可。

❾ AU3原碼怎麼實現與FTP伺服器同步文件

首先去下載個FTPEx.au3

給段源碼你研究吧


#include<FTPEx.au3>
#include<Array.au3>
Local$path
$server='192.168.1.1';伺服器
$name='admin';用戶名
$pass='admin';密碼
$Port='21';埠
$path="c:a1鄉村";遠程路徑,FTP的路徑。
$RemoteDir=$path;遠程根路徑轉換,不用管它。
$LocalDir="D:存儲軟體au3進行中FTP同步實驗室1同步路徑";本地路徑,你想讓文件下載到哪裡?
$LocalDir=flocalDir($RemoteDir,$LocalDir);轉換首目錄,不用管
;~MsgBox(0,"$LocalDir",$LocalDir)

ftp($server,$name,$pass,$Port,$path,$RemoteDir)

Funcftp($server,$name,$pass,$Port,$path,$RemoteDir)
;說明:主要函數,搜索,下載
$Open=_FTP_Open('MyFTP');打開一個FTP會話

$Conn=_FTP_Connect($Open,$server,$name,$pass,0,$Port);連接到ftp伺服器
_FTP_DirSetCurrent($Conn,$path)
$aFile=_FTP_ListToArrayEx($Conn,0,0);列目錄(0=文件和目錄,1=目錄,2=文件)(格式0=mm/dd/yyyy,1=yyyy/mm/dd)

;~_ArrayDisplay($aFile)
;~MsgBox(0,"顯示","共("&$aFile[0][0]&")個")
;~MsgBox(0,"$aFile[$i][0個]文件名",$aFile[0][0])
For$i=1To$aFile[0][0]
If$aFile[$i][2]=16And$aFile[$i][0]<>"."And$aFile[$i][0]<>".."Then
;~$path=$path&$aFile[$i][0]&""
;~MsgBox(0,"$path",$path&$aFile[$i][0]&"",$RemoteDir)
ftp($server,$name,$pass,$Port,$path&$aFile[$i][0]&"",$RemoteDir)
EndIf
If$aFile[$i][0]<>"."And$aFile[$i][0]<>".."And$aFile[$i][2]<>16Then
;檢驗
;~MsgBox(0,"",$aFile[$i][0])
$fname=$aFile[$i][0];文件名
$sync=ftpsync($LocalDir,$RemoteDir,$path,$fname)
;~MsgBox(0,"是否存在文件返回信息",$sync)
;~If$fname="PiView.mdb"Then
;~MsgBox(0,"$sync",$sync[0]&@LF&$sync[1])
;~EndIf
Select
Case$sync[0]=1;未發現文件
$ftp_download=_FTP_FileGet($Conn,$path&$fname,$sync[1],False);下載文件(True=覆蓋False=不覆蓋(默認))
;~MsgBox(0,$path&$fname,$sync[1])
Case$sync[0]=2;發現有同名文件
$ftpsize=_FTP_FileGetSize($Conn,$path&$aFile[$i][0])
$localsize=FileGetSize($sync)
;~MsgBox(0,"大小對比",$ftpsize&"-"&$localsize)
If$ftpsize<>$localsizeThen
;~MsgBox(0,"大小對比不成功",$ftpsize&"-"&$localsize)
;~MsgBox(0,"大小對比不成功",$path&$aFile[$i][0]&"-"&$sync)
$ftp_download=_FTP_FileGet($Conn,$path&$fname,$sync[1],False)
;~MsgBox(0,"$ftp_download",$ftp_download)
EndIf
CaseElse
MsgBox(0,"意外錯誤","搜索失敗")

EndSelect
;~MsgBox(0,"次數",$aFile[$i][0])
EndIf

;~MsgBox(0,"顯示","名="&$aFile[$i][0]&@CRLF&$aFile[$i][1]&@CRLF&$aFile[$i][2]&@CRLF&$aFile[$i][3]&@CRLF&$aFile[$i][4]&@CRLF&$aFile[$i][5])

Next
;$aFile[$i][0個]文件名
;$aFile[$i][1]文件大小
;$aFile[$i][2]文件屬性
;$aFile[$i][3]文件修改日期-時間
;$aFile[$i][4]文件創作日期-時間
;$aFile[$i][5]文件通入日期-時間
$Ftpc=_FTP_Close($Open);關閉_FTP_Open打開的回話
EndFunc;==>ftp

;~FuncDownload
;~用途:下載一個FTP上的文件
;~$ftp_download=_FTP_FileGet($Conn,"111 est222.txt","e:au3_ftp est222.txt",False);下載文件(True=覆蓋False=不覆蓋(默認))
;~EndFunc;==>ftp

Funcftpsync($LocalDir,$RemoteDir,$path,$fname);本地路徑,遠程根路徑路徑,變化中的遠程路徑,要下載的文件名。
Local$loc12
$loc12=_ArrayCreate("0","0")
;~說明:位置錯誤返回0,失敗返回1,成功返迴路徑。主要用來判斷是否有相同的文件。
IfFileExists($LocalDir)Then;看看本地是否存在,要是不存在就創建一個。
Else
DirCreate($LocalDir)
EndIf
Local$len=StringLen($RemoteDir)
Local$len1=StringLen($path)
$New=StringRight($path,$len1-$len)
;~MsgBox(0,"$New",$New)
;~MsgBox(0,"$fname",$fname)
IfFileExists($LocalDir&$New)Then
Else
;創建目錄
DirCreate($LocalDir&$New)
EndIf
;~MsgBox(0,"需要判斷是否存在的文件",$LocalDir&$New&$fname)
IfFileExists($LocalDir&$New&$fname)Then
;判斷文件大小
$loc12[0]=2
$loc12[1]=$LocalDir&$New&$fname
;~Return$LocalDir&$New&$fname
;~MsgBox(0,"文件是否存在判定-是存在",$LocalDir&$New&$fname)

Else
;創建目錄下載文件

;~Return1
$loc12[0]=1
$loc12[1]=$LocalDir&$New&$fname
EndIf
Return$loc12
EndFunc;==>ftpsync

FuncflocalDir($RemoteDir,$LocalDir)
;~說明:創建首目錄
$LOG=StringSplit($RemoteDir,"")
If$LOG[0]<=1Then;如果呢~只有根目錄盤那就是C盤根目錄
Local$result=StringLeft($RemoteDir,1)
$LocalDir=$LocalDir&$result&"盤根目錄"
Return$LocalDir
Else;如果不是那遠程目錄的最後一個文件夾,便是根目錄的最後一個文件夾了。
$Loc1=$LOG[$LOG[0]-1]
$LocalDir=$LocalDir&$Loc1&""
Return$LocalDir

EndIf
EndFunc;==>flocalDir

❿ win2003系統下 FreeFileSync v8.1 如何通過sftp將需要備份的文件上傳到ftp伺服器進行備份。

默認的sublime text是沒有這個sftp連接功能的,這只是一個文本編輯器,相當於windows下的txt,所以要先裝上插件:
安裝Sublime Text 2插件的方法:
1.直接安裝
安裝Sublime text 2插件很方便http://www.uuudown.com/,可以直接下載安裝包解壓縮到Packages目錄
(菜單->preferences->packages)。
2.使用Package Control組件安裝,下載這個方法要先安裝Package Control,我就是用這個方法安裝的。
先安裝package control組件,然後直接在線安裝。
1) 按Ctrl+`調出console, 粘貼以下代碼到底部命令行並回車:
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
2)重啟Sublime Text 2。
如果在Perferences->package settings中看到package control這一項,則安裝成功。
3)用Package Control安裝插件的方法:

按下Ctrl+Shift+P調出命令面板
輸入install選擇下面提示的 Install Package選項並回車,然後輸入SFTP,下拉列表中會出現一些相關的插件,選中sftp進行安裝就行了,裝好後還需配置如下:選菜單欄中的File->SFTP/FTP->Set up Server,然後出現一個配置窗口如下,
連接成功的話會有在sublime的底部如下顯示,這樣鏈接成功了。。。

按下Ctrl+Shift+P調出命令面板
選中sftp進行安裝就行了,裝好後還需配置如下:
選菜單欄中的File->SFTP/FTP->Set up Server,然後出現一個配置窗口如下,

注意是ftp連接的話,要將sftp改成ftp,然後設置主機名,密碼,埠就行了,ftp的埠是21。
連接成功的話會有在sublime的底部如下顯示,這樣鏈接成功了。。。

下面介紹將一個項目上傳:

在工具欄中點擊Project - Add Folder to Project...,選擇項目的文件夾。這樣左側會出現project文件夾,右鍵project,選擇FTPSync - Setup FTPSync in this folder,之後會出來一個配置文件sftp-config.json,對配置文件進行修改,代碼如下:

[php] view plain
{
// The tab key will cycle through the settings when first created
// Visit http://wbond.net/sublime_packages/sftp/settings for help

// sftp, ftp or ftps
"type": "ftp",

"save_before_upload": true,
"upload_on_save": false,
"sync_down_on_open": false,
"sync_skip_deletes": false,
"confirm_downloads": false,
"confirm_sync": true,
"confirm_overwrite_newer": false,

"host": "wangshangyou.com",
"user": "",
"password": "",
//"port": "22",

"remote_path": "/",
"ignore_regexes": [
"\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json",
"sftp-settings\\.json", "/venv/", "\\.svn", "\\.hg", "\\.git",
"\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"
],
//"file_permissions": "664",
//"dir_permissions": "775",

//"extra_list_connections": 0,

"connect_timeout": 30,
//"keepalive": 120,
//"ftp_passive_mode": true,
//"ssh_key_file": "~/.ssh/id_rsa",
//"sftp_flags": ["-F", "/path/to/ssh_config"],

//"preserve_modification_times": false,
//"remote_time_offset_in_hours": 0,
//"remote_encoding": "utf-8",
//"remote_locale": "C",
}

在project目錄結構中選擇文件右鍵上傳,或者在命令輸入框中輸入命令。

這樣就完成了。

主要快捷鍵列表:
Ctrl+L 選擇整行(按住-繼續選擇下行)
Ctrl+KK 從游標處刪除至行尾
Ctrl+Shift+K 刪除整行
Ctrl+Shift+D 復制游標所在整行,插入在該行之前
Ctrl+J 合並行(已選擇需要合並的多行時)
Ctrl+KU 改為大寫
Ctrl+KL 改為小寫
Ctrl+D 選詞 (按住-繼續選擇下個相同的字元串)
Ctrl+M 游標移動至括弧內開始或結束的位置
Ctrl+Shift+M 選擇括弧內的內容(按住-繼續選擇父括弧)
Ctrl+/ 注釋整行(如已選擇內容,同「Ctrl+Shift+/」效果)
Ctrl+Shift+/ 注釋已選擇內容
Ctrl+Z 撤銷
Ctrl+Y 恢復撤銷
Ctrl+M 游標跳至對應的括弧
Alt+. 閉合當前標簽
Ctrl+Shift+A 選擇游標位置父標簽對兒
Ctrl+Shift+[ 折疊代碼
Ctrl+Shift+] 展開代碼
Ctrl+KT 折疊屬性
Ctrl+K0 展開所有
Ctrl+U 軟撤銷
Ctrl+T 詞互換
Tab 縮進 自動完成
Shift+Tab 去除縮進
Ctrl+Shift+↑ 與上行互換
Ctrl+Shift+↓ 與下行互換
Ctrl+K Backspace 從游標處刪除至行首
Ctrl+Enter 游標後插入行
Ctrl+Shift+Enter 游標前插入行
Ctrl+F2 設置書簽
F2 下一個書簽
Shift+F2 上一個書簽

熱點內容
安卓平板和蘋果的平板有什麼區別 發布:2024-10-09 20:26:37 瀏覽:425
上傳速度對網速的影響嗎 發布:2024-10-09 20:09:38 瀏覽:561
密碼鎖芯在哪裡能買到 發布:2024-10-09 20:05:33 瀏覽:452
傳奇伺服器強行下線是什麼意思 發布:2024-10-09 20:05:11 瀏覽:920
sqljoinas 發布:2024-10-09 19:48:01 瀏覽:391
文本編輯器沒有編譯器可以嗎 發布:2024-10-09 19:39:36 瀏覽:996
linux環境變數oracle 發布:2024-10-09 19:24:36 瀏覽:318
pythonimport找不到模塊 發布:2024-10-09 19:23:45 瀏覽:510
安卓怎麼卸載插件 發布:2024-10-09 19:07:13 瀏覽:932
see腳本 發布:2024-10-09 19:07:12 瀏覽:424