{"id":17094823,"url":"https://github.com/daniellienert/dl-assetsync","last_synced_at":"2025-09-11T05:14:42.755Z","repository":{"id":56970001,"uuid":"85498594","full_name":"daniellienert/dl-assetsync","owner":"daniellienert","description":"Sync assets from various sources (like the local filesystem, dropbox, owncloud ...) into Neos. ","archived":false,"fork":false,"pushed_at":"2023-04-30T15:53:49.000Z","size":79,"stargazers_count":10,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T23:13:05.140Z","etag":null,"topics":["assets","dropbox","neoscms","owncloud","webdav"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daniellienert.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"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,"zenodo":null}},"created_at":"2017-03-19T18:22:01.000Z","updated_at":"2022-11-03T12:08:08.000Z","dependencies_parsed_at":"2025-04-12T23:13:07.336Z","dependency_job_id":"42182e3d-371d-4d89-bd08-c2b327a9002f","html_url":"https://github.com/daniellienert/dl-assetsync","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/daniellienert/dl-assetsync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniellienert%2Fdl-assetsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniellienert%2Fdl-assetsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniellienert%2Fdl-assetsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniellienert%2Fdl-assetsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daniellienert","download_url":"https://codeload.github.com/daniellienert/dl-assetsync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniellienert%2Fdl-assetsync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272971420,"owners_count":25024093,"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","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["assets","dropbox","neoscms","owncloud","webdav"],"created_at":"2024-10-14T14:24:34.102Z","updated_at":"2025-08-31T10:43:06.576Z","avatar_url":"https://github.com/daniellienert.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Travis Build Status](https://travis-ci.org/daniellienert/dl-assetsync.svg?branch=master)](https://travis-ci.org/daniellienert/dl-assetsync) [![Latest Stable Version](https://poser.pugx.org/dl/assetsync/v/stable)](https://packagist.org/packages/dl/assetsync) [![Total Downloads](https://poser.pugx.org/dl/assetsync/downloads)](https://packagist.org/packages/dl/assetsync) [![License](https://poser.pugx.org/dl/assetsync/license)](https://packagist.org/packages/dl/assetsync)\n[![My wishlist on amazon](https://img.shields.io/badge/Wishlist-Amazon-yellow.svg)](https://www.amazon.de/hz/wishlist/ls/MSNQT8FTAMT5?ref_=wl_share)  \n# Neos Asset Synchronization\n\nThis package makes it possible to sync files from various sources into the Neos asset management. Sources can be a folder on the local file system as well as cloud services like NextCloud or Dropbox. New sync sources can be added easily. You can specify tags that are assigned to the importet assets in order to find them easily in the media browser.\n\n### Available Sources\nThese are currently available sources, new sources can be implemented easily - take a look at the `SourceInterface` to see how its done. \n\nThese are the available sources. Have a look at the detailed configuration examples bewlow.\n\n- **Local Filesystem Source**: Import files from a local folder.\n- **WebDav Source**: Import files from a webdav server. Also suitable to sync files from your **Owncloud** or **Nextcloud** account.\n- **Dropbox Source**: Import files from a Dropbox folder.\n\n## Installation and integration\n\nThe installation is done with composer: \n\n\tcomposer require dl/assetsync\n\nAn additional database table is required which is created using:\n    \n    ./flow doctrine:migrate\n\n## Usage\n\nRun the synchronization via the command controller:\n\n\t./flow assetsync:sync \u003csourceIdentifier\u003e\n\t\nOr run all available sourceConfiguration:\n\n\t./flow assetsync:syncall\n\n## Source Configuration\n\n### Generic Source configuration\n\n**sourceClass**\n\nFull qualified class name of the source class.\n\n**fileIdentifierPattern**\n\nThis pattern can be used to filter the to be imported files by a given pattern. Currently the file identifier is the filename and path for all implemented sources. \nThis can change for new sources.\n\nExample: \n\n    fileIdentifierPattern: '.+\\.(gif|jpg|jpeg|tiff|png)'\n\nDefault: `.*`\n\n**removeAssetsNotInSource**\n\nConfigures, if files which are synced in previously, but doesn't exist in the source anymore should be removed from the assets. \n\nDefault: `false`\n\n### Local Filesystem Source\n\nSyncs files from a local file system directory.\n\n| Implementation   | `DL\\AssetSync\\Source\\LocalFilesystemSource` |\n|------------------|---------------------------------------------|\n| Required Package | none                                        |\n\nConfiguration Example:\n\n\tDL:\n\t  AssetSync:\n\t    sourceConfiguration:\n\t      \u003csourceIdentifier\u003e:\n\t        sourceClass: DL\\AssetSync\\Source\\LocalFilesystemSource\n\t        assetTags:\n\t          - myLocalFileSource\n\t        assetCollections:\n\t          - assetCollectionWithSyncedItems\n\t        sourceOptions:\n\t          sourcePath: '\u003cpathToLocalDirectory\u003e'\n\n### WebDav Source\n\nSyncs files from a WebDav Server. This can also be used to sync files from OwnCloud or NextCloud. It uses the packages League\\Flysystem for an easier file system abstraction.\n\n| Implementation   | `DL\\AssetSync\\Source\\LeagueFlysystem\\WebDavSource` |\n|------------------|----------------------------------------------------|\n| Required Package | `league/flysystem-webdav`                          |\n\nConfiguration Example for a OwnCloud share:\n\n\tDL:\n\t  AssetSync:\n\t    sourceConfiguration:\n\t      \u003csourceIdentifier\u003e:\n\t        sourceClass: DL\\AssetSync\\Source\\LeagueFlysystem\\WebDavSource\n\t        sourceOptions:\n\t          baseUri: '\u003cYourOwncloudURI\u003e/remote.php/webdav/'\n\t          pathPrefix: '/remote.php/webdav'\n\t          userName: '\u003cuserName\u003e'\n\t          password: '\u003cpassword\u003e'\n\t          authType: 1\n\t          sourcePath: '\u003cpathToTheFolder\u003e'\n\t          \n### Dropbox Source\n\nSyncs files from Dropbox. You need to create an application to retreive the app key on [https://www.dropbox.com/developers/apps]().\n\n| Implementation   | `DL\\AssetSync\\Source\\LeagueFlysystem\\DropboxSource` |\n|------------------|-----------------------------------------------------|\n| Required Package | `league/flysystem-dropbox`                          |\n\nConfiguration Example for Dropbox:\n\n\tdropboxSource:\n\t  sourceClass: DL\\AssetSync\\Source\\LeagueFlysystem\\DropboxSource\n\t  sourceOptions:\n\t    sourcePath: '\u003cpathToTheFolder\u003e'\n\t    accessToken: \u003caccessToken\u003e\n\t    appSecret: \u003cappSecret\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniellienert%2Fdl-assetsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniellienert%2Fdl-assetsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniellienert%2Fdl-assetsync/lists"}