{"id":18363975,"url":"https://github.com/tritondatacenter/manta-archiver","last_synced_at":"2025-04-10T09:58:47.626Z","repository":{"id":66704586,"uuid":"112663382","full_name":"TritonDataCenter/manta-archiver","owner":"TritonDataCenter","description":"CLI Utility to backup local data on Manta","archived":false,"fork":false,"pushed_at":"2018-05-17T23:37:52.000Z","size":155,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-02-15T19:48:30.781Z","etag":null,"topics":["backup","backup-cli","cli","joyent","manta"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TritonDataCenter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-30T21:39:33.000Z","updated_at":"2022-11-26T15:34:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"b3a5e139-adf0-43b2-8ab4-716a05e50a9d","html_url":"https://github.com/TritonDataCenter/manta-archiver","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fmanta-archiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fmanta-archiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fmanta-archiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fmanta-archiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TritonDataCenter","download_url":"https://codeload.github.com/TritonDataCenter/manta-archiver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248198864,"owners_count":21063626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","backup-cli","cli","joyent","manta"],"created_at":"2024-11-05T23:08:46.114Z","updated_at":"2025-04-10T09:58:47.607Z","avatar_url":"https://github.com/TritonDataCenter.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Manta Archiver\n\nManta Archiver is a simple CLI tool that allows you to back up all files from\na local directory to a remote Manta path. All files will be stored in Manta\nin a compressed state with optional encryption provided by the Manta Java SDK.\n\n## Usage\n\nManta Archiver is configured in the same fashion as [java-manta](https://github.com/joyent/java-manta) but provides a way\nto interactively generate a configuration file so you don't need to learn about java-manta in order to use this project.\nSee the following wiki articles for setup instructions:\n\n- [Quick setup instructions, no encryption](https://github.com/joyent/manta-archiver/wiki/Quick-setup,-no-encryption)\n- [Quick setup instructions, with encryption](https://github.com/joyent/manta-archiver/wiki/Quick-setup,-with-encryption)\n- [Advanced setup](https://github.com/joyent/manta-archiver/wiki/Advanced-setup)\n\n### Encryption\nOracle and Azul JVMs require installation of the\n[Java Cryptography Extensions](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html) for Oracle JVMs and the [Zulu Cryptography Extension Kit](https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-cryptography-extension-kit/) for Azul JVMs. This does not apply as of Java 8 update 161, which includes JCE by default for both [Oracle](http://www.oracle.com/technetwork/java/javase/8u161-relnotes-4021379.html#JDK-8170157) and [Azul](https://support.azul.com/hc/en-us/articles/115001122623-Java-Cryptography-Extension-JCE-for-Zing). OpenJDK distributions do not need any modifications to support stronger encryption modes.\n\nIf you see the following error it means JCE is required but not installed:\n```\nCannot support TLS_RSA_WITH_AES_256_CBC_SHA256 with currently installed providers\n```\n\n### Commands\n\n#### Universal options relevant to all commands\n`--log-destination`: `STDOUT`, `STDERR` (default), `FILE`\n`--log-level`: `TRACE`, `DEBUG`, `INFO`, `WARN` (default), `ERROR`\n\n#### generate-env\n\u003e Arguments: [ bits ]\n\u003e\n\u003e **bits**: Optional key strength in bits. May be omitted or one of the following: `128`, `192`, `256`.\n\nInteractively builds a configuration file from a [template](/src/main/java/resources/env.sh). If `bits` is provided the generated configuration will have encryption enabled. See the footnote about [encryption strength requirements](#encryption) if selecting a value greater than 128.\n\n#### connect-test\n\nThis command validates that the utility can connect properly to Manta with the\ncurrent configuration. Additionally, it outputs the final configuration.\n\n##### Example output:\n\n```\n$ java -jar target/manta-archiver-1.0.0-SNAPSHOT.jar connect-test\n  Creating new connection object\n    com.joyent.manta.client.MantaClient@6e4784bc\n  Connection configuration\n    BaseChainedConfigContext{mantaURL='https://us-east.manta.joyent.com', user='user', mantaKeyId='00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00', mantaKeyPath='/home/user/.ssh/id_rsa', timeout=20000, retries=3, maxConnections=24, httpBufferSize='4096', httpsProtocols='TLSv1.2', httpsCiphers='TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256', noAuth=false, disableNativeSignatures=false, tcpSocketTimeout=10000, connectionRequestTimeout=15000, verifyUploads=true, uploadBufferSize=16384, skipDirectoryDepth=null, clientEncryptionEnabled=false, permitUnencryptedDownloads=false, encryptionAuthenticationMode=Mandatory, encryptionKeyId=null, encryptionAlgorithm=AES/CTR/NoPadding, encryptionPrivateKeyPath=null, encryptionPrivateKeyBytesLength=null object}\n  Attempting HEAD request to: /user\n    com.joyent.manta.client.MantaObjectResponse{path='/user', contentLength=null, contentType='application/x-json-stream; type=directory', etag='null', mtime='null', type='directory', requestId='2949dbbc-0169-11e8-bc16-57a48844193f', httpHeaders=MantaHttpHeaders{wrappedHeaders={connection=keep-alive, x-response-time=18, x-server-name=a28d054b-d8e0-40ab-befc-e5728ef85650, x-request-id=2949dbbc-0169-11e8-bc16-57a48844193f, content-type=application/x-json-stream; type=directory, x-load-balancer=165.225.164.14, server=Manta, date=Thu, 25 Jan 2018 00:46:21 GMT, result-set-size=4}}, directory=true}\n  Request was successful\n```\n\n#### generate-key\n\u003e Arguments: `\u003cencryption-strength-bits\u003e \u003cpath\u003e`\n\u003e  \n\u003e **bits**: `128`, `192`, `256` (only supported values)  \n\u003e **path**: path on local filesystem to save key\n\nThis command generates an a new encryption key using the specified parameters\nand saves it to a local path. This is your secret key and it must be proctected.\n\n#### validate-key\n\u003e Arguments: `\u003cpath\u003e`\n\u003e\n\u003e **path**: path to key on local filesystem to check\n\nThis command validates an existing encryption key to determine if it is a valid\nkey.\n\n#### upload\n\u003e Arguments: `\u003clocal-directory\u003e \u003cmanta-directory\u003e`  \n\u003e  \n\u003e **local-directory**: the directory path on the local file system to send to Manta  \n\u003e **manta-directory**: the remote directory path on Manta to upload data to\n\nThis command uploads all of the files and directories under the specified\ndirectory to Manta to Manta.\n\n#### download\n\u003e Arguments: `\u003clocal-directory\u003e \u003cmanta-directory\u003e`  \n\u003e  \n\u003e **local-directory**: the directory path on the local file system to copy files to from Manta  \n\u003e **manta-directory**: the remote directory path on Manta to download data from\n\nThis command downloads all of the directories and files from Manta the specified\nremote Manta path.\n\n#### verify-local\n\u003e Arguments: `[--fix] \u003clocal-directory\u003e \u003cmanta-directory\u003e`  \n\u003e  \n\u003e **--fix**: optional flag that indicates we upload any missing or different files to Manta  \n\u003e **local-directory**: the directory path on the local file system to copy files to from Manta  \n\u003e **manta-directory**: the remote directory path on Manta to download data from\n\nThis command verifies that the contents of a local directory (files and\ndirectories) match the contents of a remote Manta path. If the `--fix` flag is\npresent, then this command will upload any missing files/directories or files\nthat do not match the remote file. Additionally, this command compares the local\nfile system with the files stored on Manta.\n\n#### verify-remote\n\u003e Arguments: `\u003cmanta-directory\u003e`\n\nThis command verifies that the contents of a remote directory match the checksum\nstored in Manta's metadata. It does this by downloading each file and performing\na checksum on the contents and comparing it to the checksum in the metadata.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftritondatacenter%2Fmanta-archiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftritondatacenter%2Fmanta-archiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftritondatacenter%2Fmanta-archiver/lists"}