---
Title: Manage objects
URL Source: https://company-skill.com/p/oss/oss-manage-objects
Language: en
Description: You need to perform common object operations in Alibaba Cloud Object Storage Service (OSS)—such as uploading, downloading, copying, or deleting files—but aren’t sure whether to use APIs, CLI, or the…
---

# Manage objects

Part of **Object Storage Service (OSS)**. Route queries via `POST https://company-skill.com/api/route`.

## What You Want to Do

You need to perform common object operations in Alibaba Cloud Object Storage Service (OSS)—such as uploading, downloading, copying, or deleting files—but aren’t sure whether to use APIs, CLI, or the web console.

**Typical User Questions**:
- How do I download objects from OSS?
- Can I use CLI to manage my OSS objects?

## Decision Tree

Pick the best path for your situation:

- **If** you are integrating object operations into application code and need to set headers like `Date header` in `rfc1123-date` format or use APIs like `CopyObject` with `x-oss-copy-source` → Use API (go to *oss/oss-storage*)
- **If** you are writing shell scripts to sync or batch-process files (e.g., using `ossutil cp` or `ossutil sync`) → Use CLI (go to *oss/oss-storage*)
- **If** you are performing one-off tasks like uploading a few files via **Console > OSS > Buckets** and using **Select Bucket** to **Upload Object** or **Delete Multiple Objects** → Use (go to *oss/oss-storage-guide*)
- **Otherwise (default)** → Start with **CLI** if you’re comfortable with terminals; otherwise, use the **** for simplicity and immediate visual feedback.

## Path Comparison

| Path | Best For | Complexity | Code Required | Automation | Key Fact | Detail Skill |
|------|----------|------------|---------------|------------|----------|-------------|
| API | medium | Yes | Yes | Requires `Authorization: OSS $ACCESS_KEY_ID:$SIGNATURE` and strict `Date header` formatting | `oss/api/oss-storage` |
| CLI | low | No | Yes | No known limitations; ideal for shell scripting | `oss/cli/oss-storage` |
| Console / Dashboard | low | No | No | Cannot efficiently handle bulk operations like `Delete Multiple Objects` on thousands of files | `oss/guide/oss-storage` |

## Path Details

### Path 1: API

**Brief Description**: The OSS API provides RESTful HTTP interfaces for precise control over object operations. Key operations include `PutObject`, `GetObject`, `CopyObject` (using the `x-oss-copy-source` header), `DeleteMultipleObjects`, and `PostObject`. You must sign requests using `Authorization: OSS $ACCESS_KEY_ID:$SIGNATURE` and format the `Date header` per `rfc1123-date` standards.

**Key technical facts**:  
*(No billing, latency, or runtime data provided in fact cards)*

**When to Use**:
- Need to integrate OSS operations into custom applications or services
- Require fine-grained control over request parameters (e.g., `Content-MD5`, conditional headers, or multipart upload logic)
- Prefer direct HTTP calls over CLI wrappers for automation

**When NOT to Use**:
- Unfamiliar with REST APIs or cryptographic request signing
- Only managing a few files occasionally
- Prefer point-and-click interfaces over code

**Known Limitations**:
- `Date header` must use HTTP/1.1 GMT formats (`rfc1123-date`, `rfc850-date`, or `asctime-date`); otherwise, returns 400 error
- `DeleteMultipleObjects` requests are limited to 1,000 objects and 2MB body size—exceeding causes `MalformedXML` error
- `PostObject` total length cannot exceed 5GB; larger uploads return `EntityTooLarge`
- Manual signature generation required in `Authorization: OSS $ACCESS_KEY_ID:$SIGNATURE`

### Path 2: CLI

**Brief Description**: The OSS CLI (typically `ossutil`) enables command-line execution of object operations like upload, download, copy, and sync. It abstracts away authentication and signing complexities while supporting scripting and batch workflows.

**Key technical facts**:  
*(No technical constraints documented in fact cards)*

**When to Use**:
- Comfortable with terminal environments and shell scripting
- Need to automate recurring tasks (e.g., nightly backups or log syncs)
- Prefer concise commands over writing full programs

**When NOT to Use**:
- Avoid command-line tools due to unfamiliarity
- Only performing rare, one-time file edits
- Require advanced request controls like custom metadata directives or range-based downloads

### Path 3: Console / Dashboard
**Brief Description**: The OSS web console offers a GUI under **Console > OSS > Buckets**, where you can **Select Bucket** to perform actions like **Upload Object**, **View Object Metadata**, **Delete Tags**, configure **Lifecycle Management**, enable **Versioning**, or execute **Delete Multiple Objects**.

**Key technical facts**:  
*(No performance or auth data provided)*

**When to Use**:
- New to OSS and prefer visual navigation
- Managing a small number of files infrequently
- Need to explore bucket contents or inspect metadata interactively

**When NOT to Use**:
- Building automated pipelines or integrations
- Processing hundreds or thousands of objects
- Requiring precise control over HTTP headers or request conditions

**Known Limitations**:
- Not suitable for automation or scheduled tasks
- Lacks support for complex logic (e.g., conditional deletes based on modification time)
- Bulk operations become slow and impractical at scale

## FAQ

Q: Which path should I start with?
A: If you’re comfortable with terminals, begin with **CLI** for flexibility and automation. If not, use the **console** for quick, visual file management.

Q: What if I need to delete 2,000 objects but used the API’s `DeleteMultipleObjects`?
A: You’ll hit a `MalformedXML` error because the API limits `DeleteMultipleObjects` to 1,000 objects and 2MB request size—split into smaller batches or use CLI instead.

Q: What if I send an API request with a `Date header` in local time instead of `rfc1123-date`?
A: OSS will reject it with a 400 error—only GMT-formatted dates per HTTP/1.1 standards are accepted.

Q: Can I use the console to manage object metadata or tags efficiently?
A: Yes—for individual objects, you can **View Object Metadata** or **Delete Tags** via **Console > OSS > Buckets > Select Bucket**, but bulk tag updates aren’t practical.

Q: If I need to copy objects between buckets with conditional logic (e.g., only if newer), which path works?
A: Use the **API** with `CopyObject` and conditional headers like `x-oss-copy-source-if-modified-since`; the console and CLI lack this granularity.

Q: What happens if I try to upload a 6GB file using the `PostObject` API?
A: You’ll receive an `EntityTooLarge` error—`PostObject` has a 5GB limit; use multipart upload via API or CLI for large files.

Q: Is `Content-MD5` validation supported in all paths?
A: Only the **API** explicitly supports `Content-MD5` for integrity checks during upload; CLI may handle it internally, and the console does not expose this option.

## Related queries

manage oss objects, upload file to oss, download object from oss, copy oss files, bulk copy oss objects, sync local files with oss, oss cli tool, oss api upload, oss console gui, graphical oss manager, how to upload to oss, can i use cli for oss, oss object operations, manage files in oss bucket, os

---
Part of [Object Storage Service (OSS)](https://company-skill.com/p/oss.md) · https://company-skill.com/llms.txt
