Commits

Jason R. Coombs committed f4e2ef2

Adding uploader script for quickly uploading a file from the filesystem into mongodb.

Comments (0)

Files changed (1)

+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.