minio 上传 文件名
时间: 2024-12-27 22:19:10 浏览: 125
### 如何在MinIO中上传文件时指定或处理文件名
#### 使用命令行工具 `mc` 上传并指定对象名称
为了使用 MinIO 客户端 (`mc`) 命令行工具来上传带有特定名字的对象至 MinIO 存储桶,可以利用如下命令:
```bash
mc cp /path/to/local/file.txt myminio/bucket-name/my-specific-filename.txt
```
这条指令会把本地路径 `/path/to/local/` 下名为 `file.txt` 的文档复制到名为 `myminio` 的 MinIO 实例中的 `bucket-name` 桶里,并将其命名为 `my-specific-filename.txt`[^4]。
#### 利用编程接口 (SDKs) 进行上传操作
对于程序化的方式来说,在不同的 SDK 中实现上传带具体命名的文件也十分简单。这里给出 Python 和 Java 的例子作为展示。
##### Python 示例
借助于 Boto3 库(适用于 Amazon S3 及兼容服务如 MinIO),可以通过设置 key 参数来自定义目标键值即最终显示的名字:
```python
import boto3
client = boto3.client('s3', endpoint_url='http://localhost:9000',
aws_access_key_id='YOUR-ACCESSKEYID',
aws_secret_access_key='YOUR-SECRETACCESSKEY')
with open('/path/to/local/image.png', 'rb') as data:
client.upload_fileobj(data, 'your-bucket-name', 'desired-object-key')
```
在这个案例里面 `'desired-object-key'` 就是你想要给定的目标文件名.
##### Java 示例
当采用 AWS SDK for Java 来同 MinIO 交互的时候,则可以在 PutObjectRequest 构造函数内指明 bucketName 和 key (也就是所期望得到的对象名称).
```java
PutObjectRequest putObjReq = new PutObjectRequest(
"your-bucket-name",
"specific/folder/path/in/bucket/desired-file-name.ext",
new File("/local/path/to/sourceFile"));
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://localhost:9000","us-east-1"))
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("accessKey", "secretKey")))
.build();
s3Client.putObject(putObjReq);
```
这段代码片段展示了怎样向位于 `"your-bucket-name"` 的存储桶提交新条目,并赋予其完整的内部路径以及自定义文件扩展名 `.ext`.
阅读全文
相关推荐


















