This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| ### after run proxy container### | |
| $ apt install -y git curl | |
| $ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" | |
| $ python get-pip.py | |
| $ pip install boto3 | |
| $ git clone https://github.com/swiftstack/swift-redirector.git |
| #!/usr/bin/python | |
| import swiftclient | |
| import pprint | |
| import Queue | |
| import threading | |
| import time | |
| import timeit | |
| import keystoneclient | |
| import ConfigParser |
| ===proxy.conf=== | |
| pipeline = healthcheck proxy-logging cache swift3 bulk tempurl tempauth cloud_sync_shunt authtoken keystoneauth slo dlo proxy-logging proxy-server | |
| [filter:keystoneauth] | |
| use = egg:swift#keystoneauth | |
| operator_roles = admin, swiftoperator | |
| reseller_prefix = KEY_ | |
| reseller_admin_role = ResellerAdmin |
| (venv) root@developer:~/swift-s3-sync# ./venv/bin/nosetests ./test/integration | |
| ....EEEE | |
| ====================================================================== | |
| ERROR: test_swift_archive (test_s3_sync.TestCloudSync) | |
| ---------------------------------------------------------------------- | |
| Traceback (most recent call last): | |
| File "/root/swift-s3-sync/test/integration/test_s3_sync.py", line 331, in test_swift_archive | |
| expected_location) | |
| File "/root/swift-s3-sync/test/integration/test_s3_sync.py", line 237, in _test_archive | |
| swift_hdrs, listing = wait_for_condition(5, _check_expired) |
| # Code Example - PySwiftClientKeyStoneAuth.py | |
| import swiftclient.client as swiftclient | |
| # reference: # https://docs.openstack.org/python-swiftclient/latest/client-api.html | |
| # v3 | |
| #_authurl = 'http://172.28.128.43:35357/v3/' | |
| #_auth_version = '3' | |
| #_user = 'admin' |
| sync_swift.py | |
| ============== | |
| ... | |
| def _get_client_factory(self): | |
| # TODO: support LDAP auth | |
| # TODO: support v2 auth | |
| username = self.settings['aws_identity'] | |
| key = self.settings['aws_secret'] |
| code I modified ( not sure it's correct or not ) | |
| ===s3_sync/provider_factory.py=== | |
| from .sync_s3 import SyncS3 | |
| from .sync_swift import SyncSwift | |
| def create_provider(sync_settings, max_conns, per_account=False): | |
| provider_type = sync_settings.get('protocol', None) | |
| if not provider_type or provider_type == 's3': |
| package tcp | |
| import ( | |
| "io" | |
| "log" | |
| "net" | |
| "os" | |
| ) | |
| // Progress indicates transfer status |
| # demo outline - bbb_sunflower_1080_2min.mp4 | |
| # 1. DLO upload to container demo to get Segments | |
| # 2. Server Side Copy Segments | |
| # 3. upload SLO json for copied Segments | |
| # leverage DLO to get | |
| $ swift -A https://cloud.swiftstack.com/auth/v1.0 -U xxx -K xxx upload demo -S 10485760 bbb_sunflower_1080_2min.mp4 | |
| bbb_sunflower_1080_2min.mp4 segment 0 | |
| bbb_sunflower_1080_2min.mp4 segment 2 | |
| bbb_sunflower_1080_2min.mp4 segment 1 |