BOXContentClient *contentClient = [BOXContentClient defaultClient];
BOXFileRequest *fileInfoRequest = [contentClient fileInfoRequestWithID:@"file-id"];
[fileInfoRequest performRequestWithCompletion:^(BOXFile *file, NSError *error) {
// If successful, file will be non-nil; otherwise, error will be non-nil.
}];
BOXContentClient *contentClient = [BOXContentClient defaultClient];
BOXFileUpdateRequest *fileUpdateRequest = [contentClient fileUpdateRequestWithID:@"file-id"];
// Update properties.
fileUpdateRequest.fileName = @"new file name.jpg"
fileUpdateRequest.fileDescription = @"new file description."
[fileUpdateRequest performRequestWithCompletion:^(BOXFile *file, NSError *error) {
// If successful, file will be non-nil and contain updated properties.
// Otherwise, error will be non-nil.
}];
BOXContentClient *contentClient = [BOXContentClient defaultClient];
BOXFileDeleteRequest *fileDeleteRequest = [contentClient fileDeleteRequestWithID:@"file-id"];
[fileDeleteRequest performRequestWithCompletion:^(NSError *error) {
// If successful, error will be nil.
}];
Download to a local file path:
BOXContentClient *contentClient = [BOXContentClient defaultClient];
NSString *localFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"test.jpg"];
BOXFileDownloadRequest *boxRequest = [contentClient fileDownloadRequestWithID:@"file-id" toLocalFilePath:localFilePath];
[request performRequestWithProgress:^(long long totalBytesTransferred, long long totalBytesExpectedToTransfer) {
// Update a progress bar, etc.
} completion:^(NSError *error) {
// Download has completed. If it failed, error will contain reason (e.g. network connection)
}];
BOXContentClient *contentClient = [BOXContentClient defaultClient];
NSString *localFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"test.jpg"];
NSOutputStream *outputStream = [NSOutputStream localFilePath append:NO];
BOXFileDownloadRequest *boxRequest = [contentClient fileDownloadRequestWithID:@"file-id" outputStream];
[request performRequestWithProgress:^(long long totalBytesTransferred, long long totalBytesExpectedToTransfer) {
// Update a progress bar, etc.
} completion:^(NSError *error) {
// Download has completed. If it failed, error will contain reason (e.g. network connection)
}];
Upload from a local file:
BOXContentClient *contentClient = [BOXContentClient defaultClient];
NSString *localFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"test.jpg"];
BOXFileUploadRequest *uploadRequest = [contentClient fileUploadRequestToFolderWithID:BoxAPIFolderIDRoot fromLocalFilePath:localFilePath];
// Optional: By default the name of the file on the local filesystem will be used as the name on Box. However, you can
// set a different name for the file by configuring the request:
uploadRequest.fileName = @"A different file name.jpg";
[uploadRequest performRequestWithProgress:^(long long totalBytesTransferred, long long totalBytesExpectedToTransfer) {
// Update a progress bar, etc.
} completion:^(BOXFile *file, NSError *error) {
// Upload has completed. If successful, file will be non-nil; otherwise, error will be non-nil.
}];
Upload from NSData:
BOXContentClient *contentClient = [BOXContentClient defaultClient];
BOXFileUploadRequest *uploadRequest = [contentClient fileUploadRequestToFolderWithID:BoxAPIFolderIDRoot fromData:[@"sample_data" dataUsingEncoding:NSUTF8StringEncoding] fileName:@"sample_file.txt"];
[uploadRequest performRequestWithProgress:^(long long totalBytesTransferred, long long totalBytesExpectedToTransfer) {
// Update a progress bar, etc.
} completion:^(BOXFile *file, NSError *error) {
// Upload has completed. If successful, file will be non-nil; otherwise, error will be non-nil.
}];
BOXContentClient *contentClient = [BOXContentClient defaultClient];
BOXFileShareRequest *shareRequest = [contentClient sharedLinkCreateRequestForFileWithID:@"file-id"];
// Optional: Customize the shared link to be created
shareRequest.accessLevel = BOXSharedLinkAccessLevelCompany;
shareRequest.expirationDate = [NSDate dateWithTimeInterval:3600 sinceDate:[NSDate date]];
shareRequest.canDownload = NO;
shareRequest.canPreview = YES;
[shareRequest performRequestWithCompletion:^(BOXFile *file, NSError *error) {
// You can confirm creation of the shared link through the sharedLink
// property of the BOXFile that is returned.
NSLog(@"Shared link URL: %@", file.sharedLink.url);
}];