123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- ---
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: rsync-configuration
- immutable: true
- data:
- rsyncd.conf: |
- uid = 0
- gid = 0
- [downloads]
- read only = no
- path = /downloads
- ---
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: script
- immutable: true
- data:
- script.sh: |
- #!/bin/sh
- set -e
- download()
- {
- while [ ! -e /downloads/youtube-dl.txt ]
- do
- sleep 15
- done
- entr -r /downloads/youtube-dl.txt | youtube-dl --batch-file /downloads/youtube-dl.txt
- rm /downloads/youtube-dl.txt
- }
- download
- ---
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: youtube-dl-configuration
- immutable: true
- data:
- youtube-dl.conf: |
- --force-ipv4 --restrict-filenames --output %(title)s.%(ext)s
- ---
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: python-http-server
- immutable: true
- data:
- python-http-server.py: |
-
- #!/usr/bin/env python
-
- """Extend Python's built in HTTP server to save files
-
- curl or wget can be used to send files with options similar to the following
-
- curl -X PUT --upload-file somefile.txt http://localhost:8000
- wget -O- --method=PUT --body-file=somefile.txt http://localhost:8000/somefile.txt
-
- __Note__: curl automatically appends the filename onto the end of the URL so
- the path can be omitted.
-
- Windows upload & download
-
- powershell -ep bypass -c "$wc=New-Object Net.WebClient;$wc.UploadFile('http://target.com/upload.bin', 'PUT', 'c:\\upload.bin');"
-
- powershell -ep bypass -c "$wc=New-Object Net.WebClient;$wc.DownloadFile('http://target.com/download.bin','c:\\download.bin');"
-
-
- Linux upload & download
-
- curl -X PUT --upload-file upload.bin http://target.com/upload.bin
- wget -O- --method=PUT --body-file=upload.bin http://target.com/upload.bin
-
- wget http://target.com/download.bin -O /tmp/download.bin
- curl http://target.com/download.bin -o /tmp/download.bin
-
- """
- import os
- try:
- import http.server as server
- except ImportError:
- # Handle Python 2.x
- import SimpleHTTPServer as server
-
- class HTTPRequestHandler(server.SimpleHTTPRequestHandler):
- """Extend SimpleHTTPRequestHandler to handle PUT requests"""
- def do_PUT(self):
- """Save a file following a HTTP PUT request"""
- filename = os.path.basename(self.path)
-
- # Don't overwrite files
- if os.path.exists(filename):
- self.send_response(409, 'Conflict')
- self.end_headers()
- reply_body = '"%s" already exists\n' % filename
- self.wfile.write(reply_body.encode('utf-8'))
- return
-
- file_length = int(self.headers['Content-Length'])
- read = 0
- with open(filename, 'wb+') as output_file:
- while read < file_length:
- new_read = self.rfile.read(min(66556, file_length - read))
- read += len(new_read)
- output_file.write(new_read)
- self.send_response(201, 'Created')
- self.end_headers()
- reply_body = 'Saved "%s"\n' % filename
- self.wfile.write(reply_body.encode('utf-8'))
-
- def do_GET(self):
- self.send_response(404, 'Not Found')
- self.end_headers()
- self.wfile.write(b'')
-
-
- if __name__ == '__main__':
- server.test(HandlerClass=HTTPRequestHandler)
|