diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml
index b8b854853b7fc516130b6d9314adaa313555d18e..d4be1ccfcfa1e6f097d17f1e3d5f9d96bd6b0383 100644
--- a/app/workers/all_queues.yml
+++ b/app/workers/all_queues.yml
@@ -46,7 +46,6 @@
 - mail_scheduler:mail_scheduler_issue_due
 - mail_scheduler:mail_scheduler_notification_service
 
-- object_storage_upload
 - object_storage:object_storage_background_move
 - object_storage:object_storage_migrate_uploads
 
diff --git a/app/workers/object_storage_upload_worker.rb b/app/workers/object_storage_upload_worker.rb
deleted file mode 100644
index f17980a83d8837e17130129f3da482b848916075..0000000000000000000000000000000000000000
--- a/app/workers/object_storage_upload_worker.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-# frozen_string_literal: true
-
-# @Deprecated - remove once the `object_storage_upload` queue is empty
-# The queue has been renamed `object_storage:object_storage_background_upload`
-#
-class ObjectStorageUploadWorker
-  include ApplicationWorker
-
-  sidekiq_options retry: 5
-
-  def perform(uploader_class_name, subject_class_name, file_field, subject_id)
-    uploader_class = uploader_class_name.constantize
-    subject_class = subject_class_name.constantize
-
-    return unless uploader_class < ObjectStorage::Concern
-    return unless uploader_class.object_store_enabled?
-    return unless uploader_class.background_upload_enabled?
-
-    subject = subject_class.find(subject_id)
-    uploader = subject.public_send(file_field) # rubocop:disable GitlabSecurity/PublicSend
-    uploader.migrate!(ObjectStorage::Store::REMOTE)
-  end
-end
diff --git a/changelogs/unreleased/jprovazn-delete-upload-worker.yml b/changelogs/unreleased/jprovazn-delete-upload-worker.yml
new file mode 100644
index 0000000000000000000000000000000000000000..52916482d32950216bec820e55911c176e23fb59
--- /dev/null
+++ b/changelogs/unreleased/jprovazn-delete-upload-worker.yml
@@ -0,0 +1,5 @@
+---
+title: Remove deprecated object_storage_upload queue.
+merge_request:
+author:
+type: removed
diff --git a/spec/models/ci/job_artifact_spec.rb b/spec/models/ci/job_artifact_spec.rb
index efddd4e7662698441dc3989a6872b997642e8977..2f87fb5f25deed10678072758c5e46cb6385ba53 100644
--- a/spec/models/ci/job_artifact_spec.rb
+++ b/spec/models/ci/job_artifact_spec.rb
@@ -25,7 +25,7 @@
         end
 
         it 'does not schedule the migration' do
-          expect(ObjectStorageUploadWorker).not_to receive(:perform_async)
+          expect(ObjectStorage::BackgroundMoveWorker).not_to receive(:perform_async)
 
           subject
         end
diff --git a/spec/workers/object_storage_upload_worker_spec.rb b/spec/workers/object_storage_upload_worker_spec.rb
deleted file mode 100644
index 32ddcbe97577f8919ec14a0192e9445ba0b9261a..0000000000000000000000000000000000000000
--- a/spec/workers/object_storage_upload_worker_spec.rb
+++ /dev/null
@@ -1,108 +0,0 @@
-require 'spec_helper'
-
-describe ObjectStorageUploadWorker do
-  let(:local) { ObjectStorage::Store::LOCAL }
-  let(:remote) { ObjectStorage::Store::REMOTE }
-
-  def perform
-    described_class.perform_async(uploader_class.name, subject_class, file_field, subject_id)
-  end
-
-  context 'for LFS' do
-    let!(:lfs_object) { create(:lfs_object, :with_file, file_store: local) }
-    let(:uploader_class) { LfsObjectUploader }
-    let(:subject_class) { LfsObject }
-    let(:file_field) { :file }
-    let(:subject_id) { lfs_object.id }
-
-    context 'when object storage is enabled' do
-      before do
-        stub_lfs_object_storage(background_upload: true)
-      end
-
-      it 'uploads object to storage' do
-        expect { perform }.to change { lfs_object.reload.file_store }.from(local).to(remote)
-      end
-
-      context 'when background upload is disabled' do
-        before do
-          allow(Gitlab.config.lfs.object_store).to receive(:background_upload) { false }
-        end
-
-        it 'is skipped' do
-          expect { perform }.not_to change { lfs_object.reload.file_store }
-        end
-      end
-    end
-
-    context 'when object storage is disabled' do
-      before do
-        stub_lfs_object_storage(enabled: false)
-      end
-
-      it "doesn't migrate files" do
-        perform
-
-        expect(lfs_object.reload.file_store).to eq(local)
-      end
-    end
-  end
-
-  context 'for legacy artifacts' do
-    let(:build) { create(:ci_build, :legacy_artifacts) }
-    let(:uploader_class) { LegacyArtifactUploader }
-    let(:subject_class) { Ci::Build }
-    let(:file_field) { :artifacts_file }
-    let(:subject_id) { build.id }
-
-    context 'when local storage is used' do
-      let(:store) { local }
-
-      context 'and remote storage is defined' do
-        before do
-          stub_artifacts_object_storage(background_upload: true)
-        end
-
-        it "migrates file to remote storage" do
-          perform
-
-          expect(build.reload.artifacts_file_store).to eq(remote)
-        end
-
-        context 'for artifacts_metadata' do
-          let(:file_field) { :artifacts_metadata }
-
-          it 'migrates metadata to remote storage' do
-            perform
-
-            expect(build.reload.artifacts_metadata_store).to eq(remote)
-          end
-        end
-      end
-    end
-  end
-
-  context 'for job artifacts' do
-    let(:artifact) { create(:ci_job_artifact, :archive) }
-    let(:uploader_class) { JobArtifactUploader }
-    let(:subject_class) { Ci::JobArtifact }
-    let(:file_field) { :file }
-    let(:subject_id) { artifact.id }
-
-    context 'when local storage is used' do
-      let(:store) { local }
-
-      context 'and remote storage is defined' do
-        before do
-          stub_artifacts_object_storage(background_upload: true)
-        end
-
-        it "migrates file to remote storage" do
-          perform
-
-          expect(artifact.reload.file_store).to eq(remote)
-        end
-      end
-    end
-  end
-end