Best way to migrate Media Files after running the Magento Migration tool?

Magento 1.9.4 --> Magento 2.4.2-p1

I successfully ran the settings and data migration using the Magento Migration tool. Now I read up on how to transfer the Media Files over (product images) and the guide I’m looking at says:

Expect to manually transfer a few aspects of your site, such as images.

To copy the data over to Magento 2, we simply copy the M1:media folder over to M2:pub/media:

cp -r /path/to/magento1/media /path/to/magento2/pub

After that, we have to reindex the Magento 2 store with the following command:

php bin/magento indexer:reindex

Then recompile it:

php bin/magento deploy:mode:set production

Now, our website should have all our M1 products, along with their images.

My question is – can I do this via FTP? The reason being is running commands via SSH ROOT seems to cause a problem for us as the files change ownership and it needs to be chmoded afterwards to assign the correct ownership?

If I download the media directory to a local folder and then re-upload it to the new site’s Media folder, do I still have to run those commands to reindex the Magento 2 store and recompile it?

Also – am I to copy /public_html/media/catalog/product or should I copy everything in the Media folder?


As per a request from @Nilesh Dubey here is my config.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
        xs:noNamespaceSchemaLocation="urn:magento:module:Magento_DataMigrationTool:etc/config.xsd">
    <steps mode="settings">
        <step title="Settings Step">
            <integrity>MigrationStepSettingsIntegrity</integrity>
            <data>MigrationStepSettingsData</data>
        </step>
        <step title="Stores Step">
            <integrity>MigrationStepStoresIntegrity</integrity>
            <data>MigrationStepStoresData</data>
            <volume>MigrationStepStoresVolume</volume>
        </step>
    </steps>
    <steps mode="data">
        <step title="Data Integrity Step">
            <integrity>MigrationStepDataIntegrityIntegrity</integrity>
        </step>
        <step title="EAV Step">
            <integrity>MigrationStepEavIntegrity</integrity>
            <data>MigrationStepEavData</data>
            <volume>MigrationStepEavVolume</volume>
        </step>
        <step title="Customer Attributes Step">
            <integrity>MigrationStepCustomerIntegrity</integrity>
            <data>MigrationStepCustomerData</data>
            <volume>MigrationStepCustomerVolume</volume>
        </step>
        <step title="Map Step">
            <integrity>MigrationStepMapIntegrity</integrity>
            <data>MigrationStepMapData</data>
            <volume>MigrationStepMapVolume</volume>
        </step>
        <step title="Url Rewrite Step">
            <integrity>MigrationStepUrlRewriteVersion191to2000</integrity>
            <data>MigrationStepUrlRewriteVersion191to2000</data>
            <volume>MigrationStepUrlRewriteVersion191to2000</volume>
        </step>
        <step title="Log Step">
            <integrity>MigrationStepLogIntegrity</integrity>
            <data>MigrationStepLogData</data>
            <volume>MigrationStepLogVolume</volume>
        </step>
        <step title="Ratings Step">
            <integrity>MigrationStepRatingsIntegrity</integrity>
            <data>MigrationStepRatingsData</data>
            <volume>MigrationStepRatingsVolume</volume>
        </step>
        <step title="ConfigurablePrices step">
            <integrity>MigrationStepConfigurablePricesIntegrity</integrity>
            <data>MigrationStepConfigurablePricesData</data>
            <volume>MigrationStepConfigurablePricesVolume</volume>
        </step>
 <!--       <step title="OrderGrids Step">                   -->
 <!--           <integrity>MigrationStepOrderGridsIntegrity</integrity>       -->
 <!--           <data>MigrationStepOrderGridsData</data>                      -->
  <!--          <volume>MigrationStepOrderGridsVolume</volume>                 -->
 <!--       </step>                                                              -->
        <step title="Tier Price Step">
            <integrity>MigrationStepTierPriceIntegrity</integrity>
            <data>MigrationStepTierPriceData</data>
            <volume>MigrationStepTierPriceVolume</volume>
        </step>
   <!--     <step title="SalesIncrement Step">                                         -->
   <!--         <integrity>MigrationStepSalesIncrementIntegrity</integrity>           -->
   <!--         <data>MigrationStepSalesIncrementData</data>                         -->
   <!--         <volume>MigrationStepSalesIncrementVolume</volume>                  -->
   <!--     </step>                                                                    -->
        <step title="Inventory Step">
            <integrity>MigrationStepInventoryIntegrity</integrity>
            <data>MigrationStepInventoryData</data>
            <volume>MigrationStepInventoryVolume</volume>
        </step>
        <step title="PostProcessing Step">
            <data>MigrationStepPostProcessingData</data>
        </step>
    </steps>
    <steps mode="delta">
        <step title="Customer Attributes Step">
            <delta>MigrationStepCustomerDelta</delta>
            <volume>MigrationStepCustomerVolume</volume>
        </step>
        <step title="Map Step">
            <delta>MigrationStepMapDelta</delta>
            <volume>MigrationStepMapVolume</volume>
        </step>
        <step title="Log Step">
            <delta>MigrationStepLogDelta</delta>
            <volume>MigrationStepLogVolume</volume>
        </step>
        <step title="ConfigurablePrices step">
            <delta>MigrationStepConfigurablePricesDelta</delta>
            <volume>MigrationStepConfigurablePricesVolume</volume>
        </step>
        <step title="Tier Price Step">
            <delta>MigrationStepTierPriceDelta</delta>
            <volume>MigrationStepTierPriceVolume</volume>
        </step>
        <step title="Url Rewrite Step">
            <delta>MigrationStepUrlRewriteVersion191to2000Delta</delta>
            <volume>MigrationStepUrlRewriteVersion191to2000</volume>
        </step>
        <step title="OrderGrids Step">
            <delta>MigrationStepOrderGridsDelta</delta>
            <volume>MigrationStepOrderGridsVolume</volume>
        </step>
        <step title="SalesIncrement Step">
            <delta>MigrationStepSalesIncrementDelta</delta>
            <volume>MigrationStepSalesIncrementVolume</volume>
        </step>
        <step title="Inventory Step">
            <delta>MigrationStepInventoryDelta</delta>
            <volume>MigrationStepInventoryVolume</volume>
        </step>
    </steps>
    
    
     <source>
        <database host="localhost" name="name_of_database_Magento1" user="user_of_database_Magento1" password="password_of_database_Magento1"/>
    </source>
    <destination>
        <database host="localhost" name="name_of_database_Magento2" user="user_of_database_Magento2" password="password_of_database_Magento2"/>
    </destination>
    
    
    
    
    
    <options>
        <map_file>etc/opensource-to-opensource/1.9.4.0/map.xml.dist</map_file>
        <eav_map_file>etc/opensource-to-opensource/map-eav.xml.dist</eav_map_file>
        <eav_document_groups_file>etc/opensource-to-opensource/eav-document-groups.xml.dist</eav_document_groups_file>
        <eav_attribute_groups_file>etc/opensource-to-opensource/eav-attribute-groups.xml.dist</eav_attribute_groups_file>
        <log_map_file>etc/opensource-to-opensource/map-log.xml.dist</log_map_file>
        <log_document_groups_file>etc/opensource-to-opensource/log-document-groups.xml.dist</log_document_groups_file>
        <settings_map_file>etc/opensource-to-opensource/settings.xml.dist</settings_map_file>
        <customer_map_file>etc/opensource-to-opensource/map-customer.xml.dist</customer_map_file>
        <customer_document_groups_file>etc/opensource-to-opensource/customer-document-groups.xml.dist</customer_document_groups_file>
        <customer_attribute_groups_file>etc/opensource-to-opensource/customer-attribute-groups.xml.dist</customer_attribute_groups_file>
        <delta_document_groups_file>etc/opensource-to-opensource/deltalog.xml.dist</delta_document_groups_file>
        <order_grids_document_groups_file>etc/opensource-to-opensource/order-grids-document-groups.xml.dist</order_grids_document_groups_file>
        <map_document_groups>etc/opensource-to-opensource/map-document-groups.xml.dist</map_document_groups>
        <class_map>etc/opensource-to-opensource/class-map.xml.dist</class_map>
        <tier_price_map_file>etc/opensource-to-opensource/1.9.4.0/map-tier-price.xml.dist</tier_price_map_file>
        <stores_map_file>etc/opensource-to-opensource/map-stores.xml.dist</stores_map_file>
        <!--
        In case bulk_size=0 it will be auto-detected for every document.
        -->
        <bulk_size>0</bulk_size>
        <!--
        Set direct_document_copy = 1 for better performance.
        NOTE: 'source' and 'destination' databases MUST be placed on the same MySQL instance
        and 'destination' user MUST be granted with 'SELECT' permissions on 'source' database
         -->
        <direct_document_copy>0</direct_document_copy>
        
        
        
         <source_prefix>aa_</source_prefix>
         <dest_prefix>bbcc_</dest_prefix>
        
        
        
        <auto_resolve_urlrewrite_duplicates>0</auto_resolve_urlrewrite_duplicates>
        <log_file>migration.log</log_file>
        <progress_bar_format>%percent%% [%bar%] Remaining Time: %remaining%</progress_bar_format>
        <upgrade_customer_password_hash>1</upgrade_customer_password_hash>
        <edition_migrate>opensource-to-opensource</edition_migrate>
        <edition_number>1.9.4.0</edition_number>
        <init_statements_source>SET NAMES utf8;</init_statements_source>
        <init_statements_destination>SET NAMES utf8;</init_statements_destination>
       <crypt_key>akdfhaofsdjfjasdfsdu</crypt_key>
    </options>
</config>