Модуль Python, который реализует ftps

Вы можете использовать регулярные выражения, такие как

function foo (path) {
  if (/^\/events\/[^\/]+$/.test(path)) {
    // matches any string starting with /events/
    // plus at least one character that is not another / before the end
    console.log('matched');
  } else {
    console.log('did not match');
  }
}


foo('/events/123456');
// 'matched'
foo('/events/123456/image');
// 'did not match'
foo('/events/'); // bonus
// 'did not match'
foo('/events/123456/'); // but note this tricky one
// 'did not match'

// if you also want to accept '/events/123456/' you could change it to
const betterRegex = /^\/events\/[^\/]+\/?$/;
console.log(betterRegex.test('/events/123456/'));
// true
console.log(betterRegex.test('/events/123456/images'));
// false

// plus you can capture the ID by adding a capture group with ()
const id =  /^\/events\/([^\/]+)\/?$/.exec('/events/123456')[1]
console.log(id) // '123456'

Но если у вас много маршрутов, я бы порекомендовал использовать что-то например, express.js, потому что это значительно облегчает работу с ними.

9
задан David Turner 16 October 2008 в 09:33
поделиться

6 ответов

Я полагаю, что Вы могли использовать Скрученный для реализации FTPS путем простого использования его реализации FTP, но изменения FTPClient.connectFactory атрибут, чтобы быть функцией, которая делает что-то с connectSSL вместо connectTCP.

Вы уверены, что хотите FTPS хотя? SFTP является другим, лучше, и намного более популярным протоколом в эти дни: Скрученный содержит реализацию SFTP также.

9
ответ дан 4 December 2019 в 08:35
поделиться

M2Cypto имеет модуль FTPS. Из документации:

>>> from M2Crypto import ftpslib
>>> f = ftpslib.FTP_TLS()
>>> f.connect('', 9021)
'220 spinnaker.dyndns.org M2Crypto (Medusa) FTP/TLS server v0.07 ready.'
>>> f.auth_tls()
>>> f.set_pasv(0)
>>> f.login('ftp', 'ngps@')
'230 Ok.'
>>> f.retrlines('LIST')
-rw-rw-r--   1 0        198          2326 Jul  3  1996 apache_pb.gif
drwxrwxr-x   7 0        198          1536 Oct 10  2000 manual
drwxrwxr-x   2 0        198           512 Oct 31  2000 modpy
drwxrwxr-x   2 0        198           512 Oct 31  2000 bobo
drwxr-xr-x   2 0        198         14336 May 28 15:54 postgresql
drwxr-xr-x   4 100      198           512 May 16 17:19 home
drwxr-xr-x   7 100      100          3584 Sep 23  2000 openacs
drwxr-xr-x  10 0        0             512 Aug  5  2000 python1.5
-rw-r--r--   1 100      198           326 Jul 29 03:29 index.html
drwxr-xr-x  12 0        0             512 May 31 17:08 python2.1
'226 Transfer complete'
>>> f.quit()
'221 Goodbye.'
>>>

С другой стороны, если бы Вы хотели минимизировать использование сторонних модулей, то необходимо смочь разделить ftplib стандартной библиотеки на подклассы. Класс FTP со встроенным (к Python) поддержка SSL. M2Crypto (или Скрученный, если Вы хотите пойти тем путем) является более легким решением, все же.

4
ответ дан 4 December 2019 в 08:35
поделиться

Скрученный, кажется, имеет некоторую реализацию FTPS (FTP по SSL) под подпроектом раковины. Я не скрученный эксперт, но Глиф, сам скрученный человек, перечислен в этом сайте. Возможно, следующим его ответ на другой вопрос, можно найти больше деталей (удача).

3
ответ дан 4 December 2019 в 08:35
поделиться

Я не попробовал его сам (да, я просто использовал Google и перешел по некоторым ссылкам), но http://www.lag.net/paramiko/, кажется, рекомендуемое решение. От поверхностного взгляда это - реализация SSH в чистом Python, который позволяет туннелировать для вещей как FTP.

Обновление: комментатор указал, что я перепутал sftp и ftps, извините. Я все еще предлагаю, по крайней мере, исследовать Paramiko кратко, чтобы видеть, соответствует ли это требованиям.

0
ответ дан 4 December 2019 в 08:35
поделиться

Я не мог найти свободный sftp клиент для окон, таким образом, я закончил тем, что перенес PSFTP Шпаклевки использование модуля подпроцесса Python. Я, вероятно, использовал бы скрученную реализацию, упомянутую Глифом, если бы я знал об этом.

Так или иначе, если Ваше заинтересованное это доступно в:

http://code.google.com/p/psftplib/

0
ответ дан 4 December 2019 в 08:35
поделиться

Что касается реализации сервера, вы можете взглянуть на pyftpdlib: http://code.google.com/p / pyftpdlib / Он включает демонстрационный скрипт, реализующий работающий сервер FTPS: http://code.google.com/p/pyftpdlib/source/browse/trunk/ demo / tls_ftpd.py

Что касается реализации клиента, я предоставил патч, который будет включен в python 2.7 и 3.2. http://bugs.python.org/issue2054

2
ответ дан 4 December 2019 в 08:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: