To directly answer your questions:
Your proposed solution is indeed viable, just make sure your CDN solution (Amazon S3 for example) is configured to accept both secure (http) and insecure (https) connections.
As far as your next question, CSV is by nature a great way to store a representation of a table. Another alternative (without seeing an example set of data that you are working with) is XML. That might be a good fit as well because it allows one-to-many relationships.
JSON might also fit well to ease the transition between text and a database.
That being said though, the hands-down best solution is to build an API service yourself and allow your plugin to communicate with it.
Related Posts:
- Should I use wpdb prepare?
- Is it mandatory to use $wpdb->prefix in custom tables
- $wpdb->insert_id
- How to add Request header in WordPress remote api calls
- Check for success of $wpdb->update() correctly
- WordPress and multithreading
- $wpdb->insert is changing a value
- Actions or filters fired when data is saved in a custom table
- Retrieving custom fields with $wpdb->get_results
- Really simple query giving error in SQL syntax
- Custom Plugin Database relations
- why creating tables using $wpdb is not being executed while installing plugins?
- Is there any background process that I can run from plugin without depending on page hits on a website without affecting page-load speed?
- How to use mysql IN statement with wpdb update method?
- wp_remote_get keeps timing out
- Using $wpdb object in a widget
- Activation hook not creating table
- $wpdb -> Batch insert from XML File?
- On Plugin Activation, How Do I Check for Proper Transport Mechanism?
- How to insert data to a database table when the field is not yet created?
- Where to store the name of a custom table?
- include wp-blog-header not working on MAMP
- creating custom function to log actions in plugin
- SQL query for custom taxonomy slugs
- Issue regarding $wpdb->prepare()
- Error on inserting a form value to database
- How to create database table, add data, update and delete using wpdb via plugins?
- Using WPDB to output raw XML fails because of wp-blog-header.php
- how to search users by ajax live search
- Adding custom end points, No error line
- Intermittent database errors when accessing WordPress database
- Storing data in wordpress database from ajax call from different website
- Strange Situation When Try To Retrieve Github Gist Using wp_remote_get
- wpdb->prepare and mysql UPDATE – how is it done?
- $wpdb->prepare with LIKE and sprintf
- How to optimize multiple insert into wordpress database
- $wpdb->update() always need a second try
- Data inserted by wpdb insert is different than data pressnt in database.
- Proper Prepare Statement for ALTER TABLE and using AFTER
- $wpdb->prepare is not working like mysql_real_escape_string
- How to avoid conflicts with db.php / $wpdb and other plugins that decide to use them?
- $wpdb in php 5.5
- Plugin to create Posts and Forums then choose category and parent forum
- $wpdb->update Issue
- How to relate the Category to user?
- AJAX request not routing through proxy
- WordPress database error: [Query was empty] – using $wpdb->prepare()
- Why doesn’t my Table get created?
- Simulating timeout is not working
- How to display specific data from a custom table to logged in users with a custom role
- $wpbd->insert_id is returning null
- How to store sensitive user data (passwords)
- How to get inserted row IDs for bulk/batch insert with wpdb query?
- WordPress Query doesn’t return the correct value
- User avatar-ACF fields
- bindParam? WordPress 4.9.5 SQL LIKE statement %s and %LIKE%
- add pagination to wp_remote_get
- Update database record in plugin
- Dedicated server and WPDB Class : huge slow-down of the website
- How to implement pagination into a wpdb->result query?
- How to CRUD from wordpress database in wordpress theme?
- I can’t write in my DB using $wpdb->insert
- $wpdb how can i save my postmeta table before querying it
- WordPress plugin tables become corrupt
- Nothing happens on WordPress Update command
- Fixing plugin for wpdb::prepare
- multiple record insert creating many duplicate records
- What is the difference between $post_id and get_the_ID()?
- Where to store plugin settings fields
- How can I add columns to the post edit listing to show my custom post data?
- Custom frontend page for plugin without a ‘physical’ page?
- How to add more than 1 user role to sub-menu pages
- How to get shortcode to work inside a foreach loop called within a shortcode?
- How do I determine if a category exists by ID?
- Use theme constants in plugin?
- How to avoid creating first submenu page that is same as menu page?
- GET parameters interfere with my plugin settings
- How to update an existing table while updating plugin?
- How to integrate CLEditor to comment system?
- Filtering SelectControl items according the input from another SelectControl in Gutenberg Block (ES5, no JSX)
- As a plugin developer, how do I remove a plugin from the global plugin directory? [duplicate]
- Creating custom input fields on the admin side
- How do I access the menus produced by Dashboard > Appearance > Menus
- Determining URIs for plugin pages
- How leave selected checkboxes marked after they are selected and saved in the database
- Custom Rest Endpoint: Post/Put/Patch not working
- Custom avatars in wordpress comments?
- Admin Subpages without Menu entry
- Any way to update_post_meta with html content? It gets stripped and becomes empty
- How to get the number of pages when paginating comments?
- WordPress (pagenow link) in ajaxurl change after i change plugin language
- Get API auth_token token to renew weekly
- Detect if requested page is PWA on server side
- Allow user to add the php code in wp_mail()
- Hiding WordPress REST endpoints from public viewing using Basic Authentication
- Plugin setting page – update_option problem
- Rewriting URLs with a query string
- Forcing ALL plugin Admin menus into a separate menu
- How to display posts list on my plugin page?
- WordPress pre-build slider