mirror of
				https://github.com/9001/copyparty.git
				synced 2025-11-03 21:43:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			977 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			977 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import sys
 | 
						|
import magic
 | 
						|
 | 
						|
 | 
						|
_ = r"""
 | 
						|
reject file uploads by mimetype
 | 
						|
 | 
						|
dependencies (linux, macos):
 | 
						|
    python3 -m pip install --user -U python-magic
 | 
						|
 | 
						|
dependencies (windows):
 | 
						|
    python3 -m pip install --user -U python-magic-bin
 | 
						|
 | 
						|
example usage as global config:
 | 
						|
    --xau c,bin/hooks/reject-mimetype.py
 | 
						|
 | 
						|
example usage as a volflag (per-volume config):
 | 
						|
    -v srv/inc:inc:r:rw,ed:c,xau=c,bin/hooks/reject-mimetype.py
 | 
						|
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
 | 
						|
    (share filesystem-path srv/inc as volume /inc,
 | 
						|
     readable by everyone, read-write for user 'ed',
 | 
						|
     running this plugin on all uploads with the params listed below)
 | 
						|
 | 
						|
parameters explained,
 | 
						|
    xau = execute after upload
 | 
						|
    c   = check result, reject upload if error
 | 
						|
"""
 | 
						|
 | 
						|
 | 
						|
def main():
 | 
						|
    ok = ["image/jpeg", "image/png"]
 | 
						|
 | 
						|
    mt = magic.from_file(sys.argv[1], mime=True)
 | 
						|
 | 
						|
    print(mt)
 | 
						|
 | 
						|
    sys.exit(1 if mt not in ok else 0)
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    main()
 |