Source

khartoum / upload.py

import os
import argparse
import warnings

import pymongo.uri_parser
import gridfs

def mongodb_gridfs(uri):
    params = pymongo.uri_parser.parse_uri(uri)
    # Suppress warnings when we pass a URI to MongoDB that includes the
    #  database name.
    warnings.filterwarnings('ignore', category=UserWarning,
        message="must provide a username",
        module='pymongo.connection')
    conn = pymongo.Connection(uri)
    database_name = params['database'] or 'khartoum'
    return gridfs.GridFS(
        conn[database_name], params['collection'] or 'fs')

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('input_file')
    parser.add_argument('--uri', dest='store', type=mongodb_gridfs,
        default=mongodb_gridfs('mongodb://localhost'),
        help="The URI for the store. Defaults to "
            "mongodb://localhost/khartoum.fs",
    )
    args = parser.parse_args()

    with open(args.input_file, 'rb') as infile:
        args.store.put(infile, filename=os.path.basename(args.input_file))

if __name__ == '__main__':
    main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.