YETI client in CLI mode: Manipulating objects

Show objects’ list

Command:

$ ./yeti.py object-list --source-container-name 'New container'

Result:
Done.

Store an object

Command:

$ ./yeti.py object-store --destination-container-name 'New container' --destination-object-name 'New object' --source-local-file-name ./README.md

Result:
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Done.

Retrieve an object

Command:

$ ./yeti.py object-retrieve --source-container-name 'New container' --source-object-name 'New object' --destination-local-file-name ./uploaded_object.md

Result:
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Failed to contact the endpoint at http://yeti.ds.eurecom.fr:8080/v1/AUTH_da0d8589692741d1b2a82956568227e6 for discovery. Fallback to using that endpoint as the base url.
Done.

Show object’s information

Command:

$ ./yeti.py object-info --source-container-name 'New container' --source-object-name 'New object'

Result:
{'Content-Type': 'application/octet-stream', 'X-Object-Meta-X-Sdk-Md5': 'd92d65d496d2e06a19bd111b69183524', 'X-Object-Meta-X-Sdk-Sha256': '48689cc202f5e6ba1f4c1d10c4822478080ba17d19c1c3541e72ac5b9b7347eb', 'Etag': 'd92d65d496d2e06a19bd111b69183524', 'Last-Modified': 'Thu, 07 Mar 2024 09:53:53 GMT', 'X-Timestamp': '1709805232.94084', 'Accept-Ranges': 'bytes', 'Content-Length': '8323', 'X-Trans-Id': 'txf7c449f75b0d4cb0b6521-0065e9bee8', 'X-Openstack-Request-Id': 'txf7c449f75b0d4cb0b6521-0065e9bee8', 'Date': 'Thu, 07 Mar 2024 13:19:36 GMT', 'Connection': 'keep-alive'}

Set object’s access control list

Command:

$ ./yeti.py object-set-access-control-list --destination-container-name 'New container' --destination-object-name 'New object' --read-access-control-list 'member'

Result:
Done.

Cloning an object

Command:

$ ./yeti.py object-duplicate --source-container-name 'New container' --source-object-name 'New object' --destination-container-name 'Container C' --destination-object-name 'Cloned object'

Result:
Done.

Cloning an object as symbolic link (no actual data duplication)

Command:

$ ./yeti.py object-duplicate --source-container-name 'New container' --source-object-name 'New object' --destination-container-name 'Container C' --destination-object-name 'Cloned object' –create-symbolic-link

Result:
Done.

Remove an object

Command:

$ ./yeti.py object-remove --destination-container-name 'Container C' --destination-object-name 'Cloned object'

Result:
Done.


Written By

Philippe Rimauro