docs: update files api section with examples for each method
This commit is contained in:
@@ -215,55 +215,130 @@ You can create a file using the Files API in several ways:
|
|||||||
##### From a Byte Array
|
##### From a Byte Array
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
using AnthropicClient;
|
var fileBytes = await File.ReadAllBytesAsync("path/to/file.txt");
|
||||||
using AnthropicClient.Models;
|
var request = new CreateFileRequest(fileBytes, "file.txt", "text/plain");
|
||||||
using System.Text;
|
var result = await client.CreateFileAsync(request);
|
||||||
|
|
||||||
// Create a file from a byte array
|
if (result.IsSuccess)
|
||||||
var content = "This is a sample text file for the Anthropic Files API.";
|
|
||||||
var fileBytes = Encoding.UTF8.GetBytes(content);
|
|
||||||
|
|
||||||
var request = new CreateFileRequest(fileBytes, "sample.txt", "text/plain");
|
|
||||||
var response = await client.CreateFileAsync(request);
|
|
||||||
|
|
||||||
if (response.IsSuccess)
|
|
||||||
{
|
{
|
||||||
Console.WriteLine("File created successfully from byte array!");
|
var file = result.Value;
|
||||||
Console.WriteLine("File ID: {0}", response.Value.Id);
|
Console.WriteLine($"Created file: {file.Name} (ID: {file.Id})");
|
||||||
Console.WriteLine("File Name: {0}", response.Value.FileName);
|
|
||||||
Console.WriteLine("File Type: {0}", response.Value.FileType);
|
|
||||||
Console.WriteLine("File Size: {0} bytes", response.Value.SizeBytes);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine("Failed to create file");
|
|
||||||
Console.WriteLine("Error Type: {0}", response.Error.Error.Type);
|
|
||||||
Console.WriteLine("Error Message: {0}", response.Error.Error.Message);
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
##### From a Stream
|
##### From a Stream
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
using AnthropicClient;
|
using var fileStream = File.OpenRead("path/to/file.txt");
|
||||||
using AnthropicClient.Models;
|
var request = new CreateFileRequest(fileStream, "file.txt", "text/plain");
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
// Create a file from a stream
|
var result = await client.CreateFileAsync(request);
|
||||||
using var stream = new MemoryStream(Encoding.UTF8.GetBytes("Stream content"));
|
|
||||||
var request = new CreateFileRequest(stream, "stream-file.txt", "text/plain");
|
|
||||||
var response = await client.CreateFileAsync(request);
|
|
||||||
|
|
||||||
if (response.IsSuccess)
|
if (result.IsSuccess)
|
||||||
{
|
{
|
||||||
Console.WriteLine("File created successfully from stream!");
|
var file = result.Value;
|
||||||
Console.WriteLine("File ID: {0}", response.Value.Id);
|
Console.WriteLine($"Created file: {file.Name} (ID: {file.Id})");
|
||||||
}
|
}
|
||||||
else
|
```
|
||||||
|
|
||||||
|
#### List Files
|
||||||
|
|
||||||
|
You can list files in your account using pagination:
|
||||||
|
|
||||||
|
##### Single Page
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var result = await client.ListFilesAsync();
|
||||||
|
|
||||||
|
if (result.IsSuccess)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Failed to create file");
|
var page = result.Value;
|
||||||
Console.WriteLine("Error Type: {0}", response.Error.Error.Type);
|
Console.WriteLine($"Found {page.Data.Count} files");
|
||||||
Console.WriteLine("Error Message: {0}", response.Error.Error.Message);
|
|
||||||
|
foreach (var file in page.Data)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"- {file.Name} (ID: {file.Id}, Size: {file.Size} bytes)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (page.HasMore)
|
||||||
|
{
|
||||||
|
Console.WriteLine("More files available...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
##### With Pagination Options
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var pagingRequest = new PagingRequest(afterId: "file_12345", limit: 10);
|
||||||
|
var result = await client.ListFilesAsync(pagingRequest);
|
||||||
|
```
|
||||||
|
|
||||||
|
##### All Files (Multiple Pages)
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
await foreach (var pageResult in client.ListAllFilesAsync(limit: 20))
|
||||||
|
{
|
||||||
|
if (pageResult.IsSuccess)
|
||||||
|
{
|
||||||
|
var page = pageResult.Value;
|
||||||
|
foreach (var file in page.Data)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"- {file.Name} (ID: {file.Id})");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Get File Information
|
||||||
|
|
||||||
|
Retrieve metadata about a specific file:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var result = await client.GetFileInfoAsync("file_12345");
|
||||||
|
|
||||||
|
if (result.IsSuccess)
|
||||||
|
{
|
||||||
|
var file = result.Value;
|
||||||
|
Console.WriteLine($"File: {file.Name}");
|
||||||
|
Console.WriteLine($"ID: {file.Id}");
|
||||||
|
Console.WriteLine($"MIME Type: {file.MimeType}");
|
||||||
|
Console.WriteLine($"Size: {file.Size} bytes");
|
||||||
|
Console.WriteLine($"Created: {file.CreatedAt}");
|
||||||
|
Console.WriteLine($"Downloadable: {file.Downloadable}");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Get File Content
|
||||||
|
|
||||||
|
Download the content of a file as a stream:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var result = await client.GetFileAsync("file_12345");
|
||||||
|
|
||||||
|
if (result.IsSuccess)
|
||||||
|
{
|
||||||
|
using var contentStream = result.Value;
|
||||||
|
using var reader = new StreamReader(contentStream);
|
||||||
|
var content = await reader.ReadToEndAsync();
|
||||||
|
|
||||||
|
Console.WriteLine("File content:");
|
||||||
|
Console.WriteLine(content);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Delete a File
|
||||||
|
|
||||||
|
Remove a file from your account:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var result = await client.DeleteFileAsync("file_12345");
|
||||||
|
|
||||||
|
if (result.IsSuccess)
|
||||||
|
{
|
||||||
|
var deleteResponse = result.Value;
|
||||||
|
Console.WriteLine($"Deleted file: {deleteResponse.Id}");
|
||||||
|
Console.WriteLine($"Type: {deleteResponse.Type}");
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user