EC運営効率化!欲しいファイルのみ一括ダウンロードする方法

EC運営効率化!欲しいファイルのみ一括ダウンロードする方法

EC運営効率化×ファイル一括ダウンロード

EC運営において、商品画像や説明文、在庫データなどのファイル管理は重要なタスクです。しかし、ファイルの数が膨大になると、それらを適切に管理・ダウンロードすることが難しくなります。そこで、本記事ではEC運営者が欲しいファイルのみを一括ダウンロードする方法を紹介します。これにより、運営効率を向上させ、外注していた作業を減らすことができます。

ファイル名の規則性を活用する

ファイル名に規則性を持たせることで、一括ダウンロードが容易になります。例えば、商品カテゴリーや商品IDなどをファイル名に含めることで、検索機能を使って簡単に目的のファイルを見つけ出すことができます。また、ファイル名の先頭にアルファベットや数字を追加することで、ファイルを特定の順序で並べ替えることもできます。「商品サムネイル画像」のおすすめは、「商品管理番号+-1(サムネイルの何番目か)です。楽天市場運営では、この法則を活用することで、1000商品分の画像を商品画像・PC用販売説明文・スマホ用商品説明文に反映させる作業でも一括で編集することが可能になります。

クラウドストレージサービスを活用する

クラウドストレージサービスを利用することで、ファイルを一元管理し、共有やダウンロードが容易になります。例えば、GoogleドライブやDropboxでは、チームメンバーとファイルやフォルダを共有することができます。また、リンクを通じて外部の人にもファイルを提供することができます。さらに、クラウドストレージサービスでは、ファイルのバージョン管理や同期機能があります。これにより、常に最新のファイルを利用でき、誤って削除や上書きした場合でも復元が可能です。楽天RMSで画像登録する際も、「パソコン版 Google ドライブ」をダウンロードすることで、Googleドライブから直接RMSにアップロードすることができます。

スクリプトやプログラムを用いた自動化

独自のスクリプトやプログラムを作成することで、ファイルの一括ダウンロードを自動化できます。例えば、PythonやJavaScriptを使って、特定の条件に合致するファイルをダウンロードするスクリプトを作成できます。これにより、手動でファイルを選択・ダウンロードする手間が省け、効率化が図れます。

下記はGoogle Colaboratoryにコピペすることで、簡単に実行できるPythonコードです。このコードを使って、ダウンロード元Googleドライブから欲しいファイル名をスプレッドシートで指定し、指定した別のGoogleドライブにダウンロードすることが可能です。

ファイル名一括取得・一括変更についてはこちらをご参照ください。

# 必要なライブラリをインポート
import os
from google.colab import auth
from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


# ライブラリをインストール
!pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client


# Googleアカウントを認証
auth.authenticate_user()


# スプレッドシートIDと範囲を指定
SPREADSHEET_ID = 'スプレッドシートURL(https://docs.google.com/spreadsheets/d/〜/edit)の「〜」部分のみ代入'
RANGE_NAME = 'シート名とセル範囲を代入(シート1!A1:B10)'


# 認証情報を設定
from google.colab import auth
from google.oauth2.credentials import Credentials
import google.auth
creds, project = google.auth.default()


# スプレッドシートからファイル名を取得
try:
   service = build('sheets', 'v4', credentials=creds)
   result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME).execute()
   file_names = result.get('values', [])
except HttpError as error:
   print(f"An error occurred: {error}")
   file_names = None


# 検索するGoogle DriveフォルダIDを指定
search_folder_id = "ドライブURL(https://drive.google.com/drive/u/0/folders/〜)〜部分のみ代入"


# ダウンロード先のGoogle DriveフォルダIDを指定
target_folder_id = "ドライブURL(https://drive.google.com/drive/u/0/folders/〜)〜部分のみ代入"


# ファイルを検索し、ダウンロード先のフォルダにコピーする関数
def search_and_download_files(service, file_names, search_folder_id, target_folder_id):
   for file_name_row in file_names:
       file_name = file_name_row[0]  # ファイル名を正しく取得
       query = f"name = '{file_name}' and mimeType != 'application/vnd.google-apps.folder' and '{search_folder_id}' in parents"
       results = service.files().list(q=query, fields="nextPageToken, files(id, name)").execute()
       items = results.get("files", [])


       if not items:
           print(f"No file found with name: {file_name}")
       else:
           for item in items:
               print(f"Found file: {item['name']} (ID: {item['id']})")
               file_id = item['id']


               # ファイルをターゲットフォルダにコピー
               file_metadata = {"name": file_name, "parents": [target_folder_id]}
               try:
                   copied_file = service.files().copy(fileId=file_id, body=file_metadata).execute()
                   print(f"File copied to target folder with ID: {copied_file['id']}")
               except HttpError as error:
                   print(f"An error occurred while copying the file: {error}")


# Google Drive APIサービスクライアントを作成
drive_service = build("drive", "v3", credentials=creds)


# 指定したGoogle Drive IDからファイルを検索し、別のIDで指定したGoogle Driveフォルダにダウンロード
search_and_download_files(drive_service, file_names, search_folder_id, target_folder_id)

まとめ

EC運営効率化のために、欲しいファイルのみを一括ダウンロードする方法はいくつか存在します。ファイル管理ツールやクラウドストレージサービスを活用したり、ファイル名の規則性を利用することで、ファイル管理が容易になります。また、スクリプトやプログラムを用いた自動化も選択肢の一つです。これらの方法をうまく組み合わせて、運営効率を向上させましょう。

Back to blog