Skip to content

Commit

Permalink
Merge branch 'iterate-ch:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
RaveenaRamany authored Dec 14, 2023
2 parents 40c20d8 + c8168fc commit 6132d45
Show file tree
Hide file tree
Showing 518 changed files with 4,592 additions and 2,189 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/duck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
type=semver,pattern={{major}}.{{minor}},value=${{env.VERSION}}
type=semver,pattern={{major}},value=${{env.VERSION}}
- name: Set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
Expand Down
36 changes: 25 additions & 11 deletions Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
Cyberduck
https://cyberduck.io/

8.7.2
- [Bugfix] Missing digest header when commiting large file upload (Box) (#14564)
- [Bugfix] Modification date not set in upload (Dropbox) (#15381)

8.7.1
- [Bugfix] Crash when selecting private key outside of ~/.ssh (macOS, Mac App Store)
- [Bugfix] Application scoped bookmark to access file outside of sandbox not saved (macOS, Mac App Store) (#15250)
- [Bugfix] Failure parsing expiration from cached temporary credentials in AWS CLI configuration from AWS SSO (S3) (#15257)
- [Bugfix] Unable to authenticate with S3 (Credentials from AWS Command Line Interface) connection profile (S3) (#15222)
- [Bugfix] Refreshed OAuth tokens not saved in credentials manager (Dropbox, Google Drive, Google Storage, Microsoft OneDrive, SharePoint) (#15309)
- [Bugfix] Failure saving OpenID Connect (OIDC) token in credentials manager (Windows)
- [Bugfix] Failure completing OAuth authentication flow (Dropbox, Microsoft OneDrive, SharePoint) (Windows Store)

8.7.0
- [Feature] Suport to login using temporary credentials from Security Token Service (STS API) using OpenID Connect (OIDC) web identity (S3) (#13804)
- [Feature] SMB (Server Message Block) protocol support (#5368)
- [Feature] Support to login using temporary credentials from Security Token Service (STS API) using OpenID Connect (OIDC) web identity (S3) (#13804)
- [Feature] Login using connection profile for AWS S3/STS + Google (OIDC) (S3)
- [Feature] Login using connection profile for AWS S3/STS + Azure AD (OIDC) (S3)
- [Feature] Support login using OAuth 2.0 in (ownCloud) (#14876)
Expand All @@ -17,7 +31,7 @@ https://cyberduck.io/
- [Bugfix] Frequent broken pipe errors (FTP) (#14969)

8.6.2
- [Feature] Allow to open connections without copying authentication code after login (Microsoft OneDrive, Sharepoint)
- [Feature] Allow to open connections without copying authentication code after login (Microsoft OneDrive, SharePoint)
- [Bugfix] Segmented downloads with multiple connections per file causes transfers to fail (#13374)
- [Bugfix] Use recommended part size from authorization response for large file uploads (Backblaze B2) (#14856)
- [Bugfix] Skip determining if directory only contains hidden files (Backblaze B2) (#14775)
Expand Down Expand Up @@ -135,9 +149,9 @@ https://cyberduck.io/
- [Bugfix] Crash running on versions prior macOS 11 (#13521)

8.4.0
- [Feature] Revert previous file versions in Info panel (S3, Backblaze B2, Dropbox, Google Storage, OneDrive, Microsoft Sharepoint)
- [Feature] Revert previous file versions in Info panel (S3, Backblaze B2, Dropbox, Google Storage, OneDrive, Microsoft SharePoint)
- [Feature] Delete previous file versions in Info panel (S3, Backblaze B2, Google Drive, Google Storage)
- [Feature] View previous file versions in Info panel (S3, Backblaze B2, Dropbox, Google Drive, Google Storage, OneDrive, Microsoft Sharepoint)
- [Feature] View previous file versions in Info panel (S3, Backblaze B2, Dropbox, Google Drive, Google Storage, OneDrive, Microsoft SharePoint)
- [Feature] View previous versions in browser by choosing View → Show Hidden (Google Drive)
- [Feature] Support applications installed from Windows Store for editing files (#12802) (Windows)
- [Feature] No length limitation when storing passwords in Windows Credential manager (#12803) (Windows)
Expand Down Expand Up @@ -201,7 +215,7 @@ https://cyberduck.io/
8.2.0
- [Feature] Support for Box API (Box) (#10235)
- [Bugfix] Failure opening connection (FTP-SSL, Windows)
- [Bugfix] Interoperability with Sharepoint Site (Microsoft Sharepoint)
- [Bugfix] Interoperability with SharePoint Site (Microsoft SharePoint)
- [Bugfix] Compare option for existing files in transfer fails to verify checksums (#12688)
- [Bugfix] Failure uploading to folders in vault (Cryptomator, CLI) (#11881)

Expand Down Expand Up @@ -301,7 +315,7 @@ https://cyberduck.io/
- [Feature] Tremendously faster uploading folders with many files to vault (Cryptomator, OneDrive, Google Drive, Backblaze B2) (#10849)
- [Feature] Substantially faster uploading folders with many files (OneDrive, Google Drive, Backblaze B2)
- [Bugfix] Maximum number of simultaneous transfers not handled properly (#11001)
- [Bugfix] Interoperability with China region operated by 21Vianet (OneDrive, Sharepoint) (#11415)
- [Bugfix] Interoperability with China region operated by 21Vianet (OneDrive, SharePoint) (#11415)
- [Bugfix] Support Elliptic Curve (EC) based client certificates for authentication (WebDAV, Windows)
- [Bugfix] Interoperability with OpenSSH for Windows (SFTP)
- [Bugfix] Segmented download fail with longer filenames (Windows)
Expand All @@ -317,7 +331,7 @@ https://cyberduck.io/
- [Bugfix] Missing log file configuration (Windows)

7.8.3
- [Bugfix] Failure renaming files (OneDrive, Sharepoint)
- [Bugfix] Failure renaming files (OneDrive, SharePoint)
- [Bugfix] Optimize segmented downloads
- [Bugfix] Allow resume of segmented downloads
- [Bugfix] Ignore unavailable regions when listing containers (OpenStack Swift)
Expand All @@ -341,13 +355,13 @@ https://cyberduck.io/

7.8.1
- [Feature] Provide armhf/aarch64 RPM and DEB packages (CLI, Rasperry Pi, Linux) (#10447)
- [Bugfix] Missing folers in directory listing (OneDrive, Sharepoint)
- [Bugfix] Missing folers in directory listing (OneDrive, SharePoint)
- [Bugfix] Interoperability with Tencent Cloud Object Storage (S3)
- [Bugfix] No file size displayed for files (Google Drive)

7.8.0
- [Feature] Connecting to different libraries (SharePoint) (#11043)
- [Feature] Default connection profile (Microsoft SharePoint Site) to connect so specific site (Sharepoint) (#10115, #11375)
- [Feature] Default connection profile (Microsoft SharePoint Site) to connect so specific site (SharePoint) (#10115, #11375)
- [Feature] Create shared link for file (OneDrive, SharePoint) (#11373)
- [Feature] Updated toolbar icons in Preferences window (macOS)
- [Bugfix] No attempt to authenticate using SSH agent (SFTP)
Expand Down Expand Up @@ -572,7 +586,7 @@ https://cyberduck.io/

6.9.0
- [Localize] Estonian Localization
- [Feature] Default connection profile for Microsoft Sharepoint Online (#10115)
- [Feature] Default connection profile for Microsoft SharePoint Online (#10115)
- [Feature] Support for eu-west-3 (Stockholm) region (S3)
- [Feature] Improve listing performance for versioned buckets (S3) (#10426)
- [Feature] Add --profile option to select connection profile (CLI)
Expand Down Expand Up @@ -856,7 +870,7 @@ https://cyberduck.io/
- [Bugfix] Failure dragging files to browser for upload (Mac) (#9860)

5.3.8 [https://trac.cyberduck.io/milestone/5.3.8]
- [Bugfix] NTLM authentication failure for uploads (Sharepoint) (#9855)
- [Bugfix] NTLM authentication failure for uploads (SharePoint) (#9855)
- [Bugfix] Selected client certificate cleared from bookmark after opening connection (#9842)

5.3.7 [https://trac.cyberduck.io/milestone/5.3.7]
Expand Down
8 changes: 8 additions & 0 deletions Cyberduck.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@
47827C9724BFA67C006942C3 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47C9427C2175D451008871C8 /* AppKit.framework */; };
47827C9924BFA800006942C3 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47827C9824BFA800006942C3 /* Quartz.framework */; };
478426F40F9F75900068BA2E /* License.strings in Resources */ = {isa = PBXBuildFile; fileRef = 478426F20F9F75900068BA2E /* License.strings */; };
4785285E2AD6B10A0008184B /* AutofillDisabledSecureTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 4785285C2AD6B10A0008184B /* AutofillDisabledSecureTextField.h */; };
4785285F2AD6B10A0008184B /* AutofillDisabledSecureTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4785285D2AD6B10A0008184B /* AutofillDisabledSecureTextField.m */; };
478DB2681DF3418D00BEAA45 /* unlockedbadge.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 478DB2671DF3418D00BEAA45 /* unlockedbadge.tiff */; };
478F0DF412FB03DC000FE33C /* update.pem in Resources */ = {isa = PBXBuildFile; fileRef = 478F0DF312FB03DC000FE33C /* update.pem */; };
47911A180B84C4E8001A29AE /* Acknowledgments.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 47911A170B84C4E8001A29AE /* Acknowledgments.rtf */; };
Expand Down Expand Up @@ -1134,6 +1136,8 @@
4784271F0F9F76230068BA2E /* sk */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; lineEnding = 0; name = sk; path = i18n/src/main/resources/sk.lproj/License.strings; sourceTree = "<group>"; };
478427210F9F76280068BA2E /* tr */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; lineEnding = 0; name = tr; path = i18n/src/main/resources/tr.lproj/License.strings; sourceTree = "<group>"; };
478427220F9F762A0068BA2E /* de */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; lineEnding = 0; name = de; path = i18n/src/main/resources/de.lproj/License.strings; sourceTree = "<group>"; };
4785285C2AD6B10A0008184B /* AutofillDisabledSecureTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AutofillDisabledSecureTextField.h; path = core/src/main/objc/AutofillDisabledSecureTextField.h; sourceTree = SOURCE_ROOT; };
4785285D2AD6B10A0008184B /* AutofillDisabledSecureTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AutofillDisabledSecureTextField.m; path = core/src/main/objc/AutofillDisabledSecureTextField.m; sourceTree = SOURCE_ROOT; };
478DB2671DF3418D00BEAA45 /* unlockedbadge.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = unlockedbadge.tiff; sourceTree = "<group>"; };
478F0DF312FB03DC000FE33C /* update.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = update.pem; path = www/update/update.pem; sourceTree = "<group>"; };
4790762A0764903900676C18 /* cs */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; lineEnding = 0; name = cs; path = i18n/src/main/resources/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1873,6 +1877,8 @@
474152D706C4F08A00AC0BD2 /* Core */ = {
isa = PBXGroup;
children = (
4785285C2AD6B10A0008184B /* AutofillDisabledSecureTextField.h */,
4785285D2AD6B10A0008184B /* AutofillDisabledSecureTextField.m */,
47EEFDC52386ECD100A3CAB0 /* UnifiedSystemLogAppender.h */,
47EEFDC62386ECD100A3CAB0 /* UnifiedSystemLogAppender.m */,
474B843F1C15DB51004D562C /* Sandbox.h */,
Expand Down Expand Up @@ -2150,6 +2156,7 @@
4705E00D1C037AB5002466FA /* SystemConfigurationProxy.h in Headers */,
474B84411C15DB51004D562C /* Sandbox.h in Headers */,
47F85C191C0F101F00FDA856 /* UKCrashReporter.h in Headers */,
4785285E2AD6B10A0008184B /* AutofillDisabledSecureTextField.h in Headers */,
47F85C1B1C0F101F00FDA856 /* UKSystemInfo.h in Headers */,
4705E0091C037AB5002466FA /* LaunchServicesQuarantineService.h in Headers */,
47820E3A20B58426006D0501 /* SystemConfigurationReachability.h in Headers */,
Expand Down Expand Up @@ -2579,6 +2586,7 @@
4705DFF91C037AB5002466FA /* LaunchServicesApplicationFinder.m in Sources */,
4705E00E1C037AB5002466FA /* SystemConfigurationProxy.m in Sources */,
47820E3920B58426006D0501 /* SystemConfigurationReachability.m in Sources */,
4785285F2AD6B10A0008184B /* AutofillDisabledSecureTextField.m in Sources */,
4705DFFF1C037AB5002466FA /* FinderLocal.m in Sources */,
4705E0031C037AB5002466FA /* IOKitSleepPreventer.m in Sources */,
473A8DD7287424CA00CD2E12 /* WorkspaceSchemeHandlerProxy.m in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion azure/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<parent>
<groupId>ch.cyberduck</groupId>
<artifactId>parent</artifactId>
<version>8.7.0-SNAPSHOT</version>
<version>8.7.2-SNAPSHOT</version>
</parent>
<artifactId>azure</artifactId>
<properties>
Expand Down
12 changes: 10 additions & 2 deletions azure/src/main/java/ch/cyberduck/core/azure/AzureCopyFeature.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@

import ch.cyberduck.core.ConnectionCallback;
import ch.cyberduck.core.DirectoryDelimiterPathContainerService;
import ch.cyberduck.core.LocaleFactory;
import ch.cyberduck.core.Path;
import ch.cyberduck.core.PathContainerService;
import ch.cyberduck.core.exception.BackgroundException;
import ch.cyberduck.core.exception.NotfoundException;
import ch.cyberduck.core.exception.UnsupportedException;
import ch.cyberduck.core.features.Copy;
import ch.cyberduck.core.io.StreamListener;
import ch.cyberduck.core.preferences.HostPreferences;
Expand All @@ -34,6 +36,7 @@

import java.net.URI;
import java.net.URISyntaxException;
import java.text.MessageFormat;

import com.microsoft.azure.storage.AccessCondition;
import com.microsoft.azure.storage.OperationContext;
Expand Down Expand Up @@ -84,7 +87,12 @@ public Path copy(final Path source, final Path copy, final TransferStatus status
}

@Override
public boolean isSupported(final Path source, final Path target) {
return !containerService.isContainer(source) && !containerService.isContainer(target);
public void preflight(final Path source, final Path target) throws BackgroundException {
if(containerService.isContainer(source)) {
throw new UnsupportedException(MessageFormat.format(LocaleFactory.localizedString("Cannot copy {0}", "Error"), source.getName())).withFile(source);
}
if(containerService.isContainer(target)) {
throw new UnsupportedException(MessageFormat.format(LocaleFactory.localizedString("Cannot copy {0}", "Error"), source.getName())).withFile(source);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@
*/

import ch.cyberduck.core.DirectoryDelimiterPathContainerService;
import ch.cyberduck.core.LocaleFactory;
import ch.cyberduck.core.Path;
import ch.cyberduck.core.PathContainerService;
import ch.cyberduck.core.exception.BackgroundException;
import ch.cyberduck.core.exception.InvalidFilenameException;
import ch.cyberduck.core.exception.NotfoundException;
import ch.cyberduck.core.features.Directory;
import ch.cyberduck.core.features.Write;
Expand All @@ -32,6 +34,7 @@
import org.apache.commons.lang3.StringUtils;

import java.net.URISyntaxException;
import java.text.MessageFormat;
import java.util.EnumSet;

import com.microsoft.azure.storage.OperationContext;
Expand Down Expand Up @@ -81,22 +84,23 @@ public Path mkdir(final Path folder, final TransferStatus status) throws Backgro
}

@Override
public boolean isSupported(final Path workdir, final String name) {
public void preflight(final Path workdir, final String filename) throws BackgroundException {
if(workdir.isRoot()) {
// Empty argument if not known in validation
if(StringUtils.isNotBlank(name)) {
if(StringUtils.isNotBlank(filename)) {
// Container names must be lowercase, between 3-63 characters long and must start with a letter or
// number. Container names may contain only letters, numbers, and the dash (-) character.
if(StringUtils.length(name) > 63) {
return false;
if(StringUtils.length(filename) > 63) {
throw new InvalidFilenameException(MessageFormat.format(LocaleFactory.localizedString("Cannot create folder {0}", "Error"), filename));
}
if(StringUtils.length(name) < 3) {
return false;
if(StringUtils.length(filename) < 3) {
throw new InvalidFilenameException(MessageFormat.format(LocaleFactory.localizedString("Cannot create folder {0}", "Error"), filename));
}
if(!StringUtils.isAlphanumeric(RegExUtils.removeAll(filename, "-"))) {
throw new InvalidFilenameException(MessageFormat.format(LocaleFactory.localizedString("Cannot create folder {0}", "Error"), filename));
}
return StringUtils.isAlphanumeric(RegExUtils.removeAll(name, "-"));
}
}
return true;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,9 @@ public AzureMoveFeature(final AzureSession session, final OperationContext conte
}

@Override
public boolean isSupported(final Path source, final Path target) {
return proxy.isSupported(source, target) && delete.isSupported(source);
public void preflight(final Path source, final Path target) throws BackgroundException {
proxy.preflight(source, target);
delete.preflight(source);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,17 @@
* feedback@cyberduck.io
*/

import ch.cyberduck.core.LocaleFactory;
import ch.cyberduck.core.Path;
import ch.cyberduck.core.exception.AccessDeniedException;
import ch.cyberduck.core.exception.BackgroundException;
import ch.cyberduck.core.shared.DefaultTouchFeature;
import ch.cyberduck.core.transfer.TransferStatus;

import org.apache.commons.io.input.NullInputStream;

import java.text.MessageFormat;

import com.microsoft.azure.storage.OperationContext;

public class AzureTouchFeature extends DefaultTouchFeature<Void> {
Expand All @@ -39,8 +43,10 @@ public AzureTouchFeature(final AzureSession session, final OperationContext cont
}

@Override
public boolean isSupported(final Path workdir, final String filename) {
return !workdir.isRoot();
public void preflight(final Path workdir, final String filename) throws BackgroundException {
if(workdir.isRoot()) {
throw new AccessDeniedException(MessageFormat.format(LocaleFactory.localizedString("Cannot create {0}", "Error"), filename)).withFile(workdir);
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import ch.cyberduck.core.Host;
import ch.cyberduck.core.LoginConnectionService;
import ch.cyberduck.core.Path;
import ch.cyberduck.core.exception.UnsupportedException;
import ch.cyberduck.core.features.Delete;
import ch.cyberduck.core.features.Find;
import ch.cyberduck.core.io.DisabledStreamListener;
Expand Down Expand Up @@ -40,7 +41,16 @@ public void testCopy() throws Exception {
final Path test = new AzureTouchFeature(session, null).touch(
new Path(container, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file)), new TransferStatus());
Thread.sleep(1000L);
final Path copy = new AzureCopyFeature(session, null).copy(test,
final AzureCopyFeature feature = new AzureCopyFeature(session, null);
assertThrows(UnsupportedException.class, () -> feature.preflight(container, test));
try {
feature.preflight(container, test);
}
catch(UnsupportedException e) {
assertEquals("Unsupported", e.getMessage());
assertEquals("Cannot copy cyberduck.", e.getDetail(false));
}
final Path copy = feature.copy(test,
new Path(container, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file)), new TransferStatus(), new DisabledConnectionCallback(), new DisabledStreamListener());
assertEquals(test.attributes().getChecksum(), copy.attributes().getChecksum());
assertNotEquals(test.attributes().getModificationDate(), copy.attributes().getModificationDate());
Expand Down
Loading

0 comments on commit 6132d45

Please sign in to comment.