A importação do produto Magento 2 não importa imagens

9

Estou importando produtos usando a importação CSV integrada (Sistema - importação - produtos)

Todos os meus dados são importados corretamente, mas recebo um erro "Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in rows: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10"

no meu css, escrevi o caminho base_image como http://mywebsite.ca/pub/media/import/img/hose/jpg/Ach7938.jpg

como teste, removi minha estrutura de pastas, editei o csv e tentei isso e obtive o mesmo problema, mesmo erro http://mywebsite.ca/pub/media/import/Ach7938.jpg

Tentei escrever o caminho do arquivo como /pub/media/import/img/hose/jpg/Ach7938.jpg, mas isso não me deixa passar pelo validador "check data".

Confirmei que as permissões nas pastas e arquivos são 775

Estou usando o php 5.6, tentei o 7, mas ele quebrou o site de várias maneiras diferentes, de modo que não é uma opção

Como observação lateral, se eu executar isso 20 vezes seguidas, o site inteiro será interrompido e a importação não funcionará novamente até que eu faça uma restauração completa do sistema (o que há com isso?)

Posso colocar as imagens em um servidor diferente e vincular a elas dessa maneira?

Justin Blayney
fonte

Respostas:

7

o caminho da imagem deve ser algo como isto no csv: Ach7938.jpg

M1 procuraria o arquivo de imagem em media / import, então acho que seria pub / media / import em M2

Você pode criar um produto com uma imagem e exportar os dados para ter uma ideia de como deve ser o valor no csv

David Verholen
fonte
6

Eu recebi o erro mencionado como "Imported resource (image) could not be downloaded from external resource due to timeout or access permissions"quando usei o seguinte formato de arquivo csv para importar imagens na versão Magento 2.0.0 (Windows 10).

O formato do csv que usei foi o seguinte >>

sku,base_image,errors
WT09-XS-Purple,/pub/media/import/wt09-white_back-test.jpg

e sob a subseção Arquivo para importar, seção Diretório de arquivo de imagens, usei o caminho como /pub/media/import

Eu tinha a imagem a ser importada no local pub / media / import

O problema foi resolvido quando usei o seguinte formato csv:

"sku","base_image"
"WT09-XS-Purple","wt09-white_back-test.jpg"

e valor do diretório de arquivos de imagens como pub/media/import insira a descrição da imagem aqui

Problema no Github: https://github.com/magento/magento2/issues/2666

Mukesh
fonte
A partir do Magento 2.3.2, o local correto da imagem para importação é: <pasta raiz do Magento> / var / import / images
Isaac
5

Não tenho certeza se isso tem algo a ver com o seu problema, pois se trata de uma importação interna, mas:

No M2 tenho imagens armazenadas, pub/media/importmas receberia o mesmo erro

  1. Não foi possível fazer o download do recurso importado (imagem) de um recurso externo devido ao tempo limite ou às permissões de acesso nas linhas: 1, 2

Eu removi o nome do caminho do meu arquivo CSV e apenas tenho o caminho da imagem image.jpgsem barras e ele funciona muito bem agora.

babywit
fonte
Eu acho que isso é específico para o seu caso. Suas imagens são diretório no diretório não em um subdiretório.
Stevie G
2

Agora estou trabalhando no Magento 2.2.6 / 7
e enfrentei o mesmo erro porque o mecanismo de caminho do diretório de diferentes sistemas operacionais.

vamos assumir que as imagens estão na pasta pub / media / import do que deveríamos mencionar o caminho da seguinte forma:
1. no Windows (principalmente para fins de host local / desenvolvimento) - / pub / media / import
2. no Ubuntu (principalmente para servidor de produção) - pub / mídia / importação

aqui a barra extra está causando o problema.

Naveen Jain
fonte
1

Se você importou com URL de imagem externa, poderá ver meu hotfix .

Achei que o problema veio do caminho duplicado da imagem após o download da imagem da URL externa.

Também criei uma solicitação de recebimento.

Jokerbase
fonte
Isso funcionou para mim. Não foi possível importar imagens de URLs externos no 2.2.7.
Johnny Longneck
1

Corrigido o mesmo problema, definindo o proprietário das imagens em pub / media / import para o usuário da web.

Em var / log / exception.log, encontrei o seguinte

[2019-06-05 21:02:06] main.CRITICAL: File 'pub/media/import/xxxx.jpg' was not found or has read restriction. {"exception":"[object] (Magento\\Framework\\Exception\\LocalizedException(code: 0): File 'pub/media/import/xxxx.jpg' was not found or has read restriction. at /opt/bitnami/apps/magento/htdocs/vendor/magento/module-catalog-import-export/Model/Import/Uploader.php:209)"} []

Sob uma instalação Bitnami, os arquivos foram carregados via FTP como o usuário 'bitnami', mas nesta instalação o usuário da web é 'daemon'

Executei o seguinte para corrigir todas as propriedades em uma instalação do Bitnami e agora importa as imagens. Não execute isso se o usuário da web não for daemon.

sudo chown -R daemon:daemon /opt/bitnami/apps/magento/htdocs && sudo find . -type d -exec chmod 770 {} \; && sudo find . -type f -exec chmod 660 {} \; && sudo chmod u+x bin/magento-cli``

Embora essa solução seja para uma instalação do BItnami, ela pode ajudar a encontrar o seu problema.

DaveJ
fonte
0

O caminho da imagem pode ser ou não pode ser sem /isso não é problema. Eu importei com os dois e funcionou. No meu caso, as imagens fornecidas no caminho não estavam disponíveis na pasta. Eu tentei com a importação de imagens disponíveis e não disponíveis e estava recebendo um erro quando essa imagem não estava disponível. O caminho pode ser qualquer um, não é necessário usar pub/media/importapenas.

Shahzaib Hayat Khan
fonte
0

Para o problema de importação de imagens, corrigi o problema do Uploader.phparquivo. altere abaixo do código do caminho do arquivo e funcione com êxito nas imagens de importação.

Caminho do arquivo: magento / vendor / magento / module-catalog-import-export / Model / Import / Uploader.php

Find the below line from line number 201:

$ filePath = $ this -> _ directory-> getRelativePath ($ filePath. $ fileName);

Replace with:

$ filePath = strpos ($ filePath, $ fileName)! == false? $ filePath: $ this -> _ directory-> getRelativePath ($ filePath. $ fileName);

Para obter mais informações, consulte o link do github:

https://github.com/magento/magento2/pull/20761/commits/8612789375b0c173f0ba852c587882af6ff8bc7f

Kirti Nariya
fonte
0

Eu mesmo me deparei com esse problema, e a correção não tinha nada a ver com o formato do meu csv ou o local do arquivo das imagens.

O que estava causando isso para mim foram as permissões na pub/media/importpasta. Parece que as imagens são colocadas aqui ao serem baixadas de uma fonte externa. Quando o sistema não pôde criar os arquivos aqui, jogou de volta o problema mencionado.

Para corrigir tudo o que eu precisava fazer era executar o seguinte comando para corrigi-lo (da pub/mediapasta):

sudo chmod 777 import

Depois disso, meus produtos foram importados sem erros.

Daniel Black
fonte
0

A seguir, o arquivo a ser substituído, a modificação no arquivo do fornecedor não é recomendada.

fornecedor \ magento \ módulo-catálogo-importação-exportação \ Modelo \ Import \ Uploader.php

Vá para a linha 249, ou seja, aqui "if ($ this-> getTmpDir ())" e substitua-a por ($ this-> getTmpDir () && strpos ($ filePath, $ this-> downloadDir)! == 0)

Copie todas as imagens para o diretório raiz na pasta "images"

Agora abra o CSV e atribua imagem com URL completo, como www.domain.com/images/test.jpg ou http://127.0.0.1/mage233/images/test.jpg

Agora volte para Admin e faça o upload deste CSV sem definir o caminho para "Diretório de arquivos de imagens"

Desta vez, deve funcionar.

zuber bandi
fonte
0

Parece que na versão 2.3.5 ele já adiciona o caminho var / import / images. Mova suas imagens para esse arquivo e importe sem adicionar o caminho var / import / images à ferramenta de importação de imagens.

ToweringMeida
fonte