Skip to content

Instantly share code, notes, and snippets.

@clayg
Created October 5, 2020 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save clayg/e6ddc8396b72683d162ce56c52b5b390 to your computer and use it in GitHub Desktop.
Save clayg/e6ddc8396b72683d162ce56c52b5b390 to your computer and use it in GitHub Desktop.
from argparse import ArgumentParser
import os
import sys
from swiftclient.client import Connection
import time
parser = ArgumentParser('make a lot of files')
parser.add_argument('--container', default='lots-of-files',
help='the container name')
parser.add_argument('--prefix', default='obj',
help='the object name <PREFIX><N>')
parser.add_argument('--number', default=100, type=int,
help='number <N> of objects to make')
parser.add_argument('--expire-in', default=30, type=int,
help='number <N> seconds before expire')
parser.add_argument('--sleep-for', default=0.1, type=float,
help='number <N> seconds between each')
auth_url = os.environ['ST_AUTH']
user = os.environ['ST_USER']
key = os.environ['ST_KEY']
def main():
args = parser.parse_args()
conn = Connection(auth_url, user, key, insecure=True)
container = args.container
conn.put_container(container)
fill_size = len(str(args.number))
for i in range(args.number):
obj_name = '%s%s' % (args.prefix, str(i).zfill(fill_size))
conn.put_object(container, obj_name, None, headers={
'x-delete-after': args.expire_in,
})
print('uploaded %s/%s' % (container, obj_name))
time.sleep(args.sleep_for)
if __name__ == "__main__":
sys.exit(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment