upload method
Uploads the local file specified in localFullPath
to remoteRelativePath
, which is the location on the remote side.
The full path in the platform is passed to localFullPath
and the relative path is passed to remoteRelativePath
.
Return RemoteFile containing the full path of the upload destination and the actual data as the return value.
localFullPath
で指定されたローカル上のファイルをリモート側の位置であるのremoteRelativePath
にアップロードします。
localFullPath
にプラットフォーム内のフルパスが渡されremoteRelativePath
に相対パスが渡されます。
戻り値としてアップロード先のフルパスと実データを格納したRemoteFileを返してください。
Implementation
@override
Future<RemoteFile> upload(
String localFullPath,
String remoteRelativePath,
) async {
if (!await localStorage.exists(localFullPath)) {
throw Exception("File could not be found: $localFullPath");
}
final bytes = await localStorage.read(localFullPath);
final remoteFullPath = await remoteStorage.fetchURI(remoteRelativePath);
if (await remoteStorage.exists(remoteFullPath)) {
await remoteStorage.delete(remoteFullPath);
}
await remoteStorage.write(remoteFullPath, bytes);
return RemoteFile(
path: await fetchPublicURI(remoteRelativePath),
bytes: bytes,
);
}